Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 02:17

    njsmith on master

    A bunch of working notes on git… (compare)

  • 02:00
    oremanj opened #17
  • Dec 06 05:45
    dependabot-preview[bot] synchronize #1306
  • Dec 06 05:44

    dependabot-preview[bot] on pip

    Bump pylint from 2.4.2 to 2.4.4… (compare)

  • Dec 06 05:44
    dependabot-preview[bot] edited #1306
  • Dec 06 05:44

    dependabot-preview[bot] on pip

    (compare)

  • Dec 06 05:44

    dependabot-preview[bot] on master

    Bump more-itertools from 8.0.0 … Merge pull request #98 from pyt… (compare)

  • Dec 06 05:44
    dependabot-preview[bot] closed #98
  • Dec 06 05:43
    dependabot-preview[bot] edited #1306
  • Dec 06 05:43

    dependabot-preview[bot] on pip

    (compare)

  • Dec 06 05:43

    dependabot-preview[bot] on master

    Bump more-itertools from 8.0.0 … Merge pull request #1331 from p… (compare)

  • Dec 06 05:43
    dependabot-preview[bot] closed #1331
  • Dec 06 05:40
    dependabot-preview[bot] labeled #98
  • Dec 06 05:40
    dependabot-preview[bot] opened #98
  • Dec 06 05:40

    dependabot-preview[bot] on pip

    Bump more-itertools from 8.0.0 … (compare)

  • Dec 06 05:34
    dependabot-preview[bot] labeled #1331
  • Dec 06 05:34
    dependabot-preview[bot] opened #1331
  • Dec 06 05:34

    dependabot-preview[bot] on pip

    Bump more-itertools from 8.0.0 … (compare)

  • Dec 05 05:48

    dependabot-preview[bot] on pip

    (compare)

  • Dec 05 05:48

    dependabot-preview[bot] on master

    Bump importlib-metadata from 1.… Merge pull request #122 from py… (compare)

NoskLo
@nosklo_gitlab
limit = trio.CapacityLimiter(5)
... then later ...
async with limit:
    await trio.run_process(....)
Peter Sutton
@dj-foxxy
@nosklo_gitlab Exactly what I need!
Alex Boag-Munroe
@Ninpo
Is that new? I normally use Semaphore
NoskLo
@nosklo_gitlab
@Ninpo it is like a Semaphore but more specific to this use case; Also it has some additional error checking built-in
Alex Boag-Munroe
@Ninpo
Just finished reading the docs on it, nice
and probably what I'll use where I'd used Semaphore before :)
saves me passing it around so I can acquire and release in the right place
Tim Stumbaugh
@tjstum_gitlab

Calling socket.is_readable() on a closed socket raises a ValueError:

trio/_socket.py in is_readable(self)
    485             return bool(rready)
    486         p = select.poll()
--> 487         p.register(self._sock, select.POLLIN)
    488         return bool(p.poll(0))
    489

ValueError: file descriptor cannot be a negative integer (-1)

i can put together a patch to change that to a trio.ClosedResourceError if that's the desired approach there

Peter Sutton
@dj-foxxy
I've just "finished" my first project using trio: a simple MAC scanner. If anyone has got a seconds, I'd like some feedback (am I using trio correctly). https://git.fds.im/snippets/4
Nathaniel J. Smith
@njsmith
@dj-foxxy that NoneType error in traps.py is super weird looking. Did you figure it out?
@dj-foxxy and that's a good question about how trio should handle the case where it fails to kill the child process... Can you open an issue to discuss more fully?
@tjstum_gitlab ValueError does seem like the wrong thing there, especially because it's probably inconsistent between different platforms...
I guess the other option for an exception would be OSError(EBADFD) or however you spell that. But ClosedResourceError probably makes more sense, because there isn't actually any syscall returning EBADFD
Nathaniel J. Smith
@njsmith
@dj-foxxy I did a quick read of the code and didn't really see anything to comment on, it seemed pretty reasonable :-)
(I didn't try to validate the Condition usage)
Tim Stumbaugh
@tjstum_gitlab
hrm? os.read(-1, 4096) certainly seems to fail with BADFD. or do you mean "it's never something that isn't just a programming error"
Nathaniel J. Smith
@njsmith
@tjstum_gitlab I mean that when you call is_readable and it fails, the failure doesn't involve a syscall returning EBADFD
Peter Sutton
@dj-foxxy
@njsmith I didn't get the NoneType issues solve. I changed what I was doing and it didn't crop up again. I'll open an issue for the proc kill thing. As for my use of conditions: I'm really unsure how to use condition in async code. In threaded coded, I'd lock over shared data, but in async if you don't have to await while touching shared data, do you need to hold the condition (or the underlying lock?).
Nathaniel J. Smith
@njsmith
@dj-foxxy ah, gotcha. Well, if the NoneType thing happens again please let us know with more details, because that's definitely not supposed to happen :-)
And thanks for opening an issue for the process kill thing
Re: Conditions: they're pretty tricky to use! You're right that you don't necessarily need to lock your data to prevent race conditions, because so many operations in async code are automatically atomic. (Though you still might want to use locking just to be explicit and avoid having to think too hard about which operations are atomic and which ones aren't.)
Nathaniel J. Smith
@njsmith
But there's an additional wrinkle for Conditions, which is that you have to be careful not to miss notifications – if you're not in cond.wait when someone calls notify, then you'll never know that it happened. And the lock can sometimes help with this, because taking the lock also blocks anyone else from calling notify.
jtrakk
@jtrakk
What is BlockingIOError: [Errno 11] write could not complete without blocking?
from print(x)
Nathaniel J. Smith
@njsmith
@jtrakk from print that means you put your stdout in non-blocking mode, and print isn't prepared for that
Are you using FdStream to talk to stdout?
jtrakk
@jtrakk
@njsmith I don't think so
maybe one of my deps touched stdout
Nathaniel J. Smith
@njsmith
@jtrakk huh, interesting. It's also possible that some other process that's sharing your stdout file is putting it into non-blocking mode... unfortunately non-blocking mode is a global property of a file
because of the scrollbar
I've seen on some project's docs (can't remember which) a thing that shows the full box when you mouse over it
for some wide code-block
jtrakk
@jtrakk
"In regular English, "stream" and "channel" mean basically the same thing." In the context of waterways, a channel is the container that the water flows through. A stream is the moving water.
those animations are so frickin dope
Nathaniel J. Smith
@njsmith
@jtrakk yeah, I kinda hate that scrollbar, but not sure how to fix it :-/
Nathaniel J. Smith
@njsmith
it's too bad that "port" is already taken by TCP/IP. It would be a great word for streams – one syllable, and emphasizes that the object represents an endpoint, rather than the whole connection
jtrakk
@jtrakk
it might be worth looking through a list of plumbing products/terms. For the "renaming Nursery" thread, I looked into arboreal terms for "branch point", but decided against suggesting the term they use
Nathaniel J. Smith
@njsmith
I just made a loud snorting noise and confused my spouse
jtrakk
@jtrakk
:-)
Nathaniel J. Smith
@njsmith
I spent a fair amount of time staring at thesaurus entries the last few weeks, but there might well be things I've missed!
jtrakk
@jtrakk
Pump, Valve, etc have the "endpoint" feel
Nathaniel J. Smith
@njsmith
those are specific elements though: a pump is an active thing that moves material from one point to another, and a valve is a control you can use to block or allow flow. I think that would be misleading here.
jtrakk
@jtrakk
Bus is short
Nathaniel J. Smith
@njsmith
@jtrakk that was actually on an earlier draft of that list, but I took it out because of the computer usage of "bus" as a term for interchange/routing systems: https://en.wikipedia.org/wiki/Bus_(computing)
jtrakk
@jtrakk
yep
Nathaniel J. Smith
@njsmith
it's very annoying that people have spent 60+ years inventing terminology for communicating stuff involving computers. just imagine if we were back in the 50s, all the lovely jargon available for the taking.
jtrakk
@jtrakk
A few of these are interesting.
Flume, Canal, Chute, Conduit, Intake, Siphon, Orifice.
https://www.ussdams.org/resource-center/glossary/
Nathaniel J. Smith
@njsmith
feel free to post ideas in the thread :-)
jtrakk
@jtrakk
Sure.