00:24:10  * contrahaxjoined
02:41:16  * contrahaxquit (Quit: Sleeping)
02:42:02  * contrahaxjoined
03:27:32  * gozalaquit (Ping timeout: 240 seconds)
03:33:01  * gozalajoined
05:42:29  * contrahaxquit (Quit: Sleeping)
05:42:47  * contrahaxjoined
05:43:15  * contrahaxquit (Client Quit)
05:43:35  * contrahaxjoined
05:44:01  * contrahaxquit (Client Quit)
05:44:20  * contrahaxjoined
05:44:48  * contrahaxquit (Client Quit)
05:45:06  * contrahaxjoined
05:45:33  * contrahaxquit (Client Quit)
05:45:50  * contrahaxjoined
05:46:20  * contrahaxquit (Client Quit)
05:46:40  * contrahaxjoined
05:47:06  * contrahaxquit (Client Quit)
05:47:25  * contrahaxjoined
05:47:52  * contrahaxquit (Client Quit)
05:48:10  * contrahaxjoined
05:48:38  * contrahaxquit (Client Quit)
05:48:55  * contrahaxjoined
05:49:25  * contrahaxquit (Client Quit)
05:49:50  * contrahaxjoined
05:50:11  * contrahaxquit (Client Quit)
05:50:30  * contrahaxjoined
05:50:57  * contrahaxquit (Client Quit)
05:51:15  * contrahaxjoined
05:51:43  * contrahaxquit (Client Quit)
05:52:00  * contrahaxjoined
05:52:29  * contrahaxquit (Client Quit)
11:02:15  * nicolagrecojoined
11:25:12  * mylesborinsquit (Quit: farewell for now)
11:25:42  * mylesborinsjoined
12:05:27  * hyperirc-9d25a90quit (Remote host closed the connection)
12:05:36  * hyperirc-9d25a90joined
14:31:57  * nicolagrecoquit (Quit: Connection closed for inactivity)
16:58:44  * contrahaxjoined
16:58:44  * contrahaxquit (Client Quit)
17:35:55  * contrahaxjoined
17:46:28  * contrahaxquit
22:08:02  <jfhbrook>so dealing w/ python's file-likes right now and I miss node streams so much
22:08:07  <jfhbrook>they're a total trash fire
22:08:21  <jfhbrook>imo it's a problem when you're forced to buffer a multi-gigabyte file
22:23:08  <jfhbrook>well, "forced," you're never forced to do anything *really*
22:25:13  <substack>what does python do for things like stdin?
22:25:18  <substack>it's been soooo long
22:25:47  <substack>~8 years since I did any python
22:29:12  <jfhbrook>you can import sys.stdin
22:29:22  <jfhbrook>and it's a "file"
22:29:31  <jfhbrook>so instead of streams python has file-likes
22:30:05  <jfhbrook>and they do stream-y things, but the interface is poorly specified and interop with iterators is very bad
22:30:15  <jfhbrook>and there's no such thing as a transform stream
22:30:24  <jfhbrook>like you don't have duplex file-likes, afaict
22:30:34  <jfhbrook>which as you might imagine makes streaming transformation very difficult
22:35:03  <jfhbrook>meanwhile node's streams APIs are clunky and poorly specified but at least they come w/ a bunch of classes you can inherit from, and they implement transform streams, and pipe is a thing
22:35:31  <jfhbrook>python's shutil lib has a "copyfile" helper but that whole module is an abomination
22:36:38  <substack>pump() is a better abstraction than .pipe(), maybe you could make a userland tool like that?
22:36:54  <substack>that can take file-likes and transform functions as arguments?
22:36:57  <jfhbrook>copyfile is kinda like pump
22:37:13  <jfhbrook>at least, my vague memory of pre-.pipe util.pump
22:37:33  <substack>I remember when it was sys.pump
22:37:37  <jfhbrook>so yeah, with a few days I could build some userland tooling to make streaming in python way less painful
22:37:54  <jfhbrook>ie, I could make a wrapper that implements read on top of an iterable
22:37:59  <substack>what is it like to publish a package in python?
22:38:00  <jfhbrook>but it's non-trivial and somehow nobody's done it
22:38:03  <jfhbrook>oh, it's crazy
22:38:28  <substack>so one of my big ideas
22:38:30  <jfhbrook>so instead of a package.json you have a setup.py, and you import a library called setuptools that has a "setup" function which then latches on cli arguments and friends
22:38:54  <jfhbrook>this file can specify a lot of things, but it can't specify versions of required packages iirc
22:38:59  <substack>is a web assembly package manager that does things the right way™ like npm but also p2p
22:39:17  <substack>then people can use any language that compiles to web assembly which will eventually be all of them
22:39:26  <jfhbrook>there's a lockfile format you can kinda use for that kinda thing but it sucks and is alrgely incompatible, and the parser is buried in the bowels of pip, which is kinda-sorta "npm but for python," but only kinda-sorta
22:39:44  <substack>eek
22:40:02  <jfhbrook>there's talk of spinning some config out into a toml-formatted file but there are already tons of files involved
22:40:03  <substack>has anybody made a better version of this garbage?
22:40:41  <jfhbrook>now, setuptools' default publish mechanism (pip doesn't have pip publish, you'd run python setup.py upload) is mad broken, so someone has written a wrapper called twine
22:40:52  <jfhbrook>people have made tools to paper over this, but nobody's fixed the core problem
22:40:57  <jfhbrook>for instance, twine, and pip
22:41:04  <jfhbrook>cookiecutter, which is a templating system
22:41:21  <jfhbrook>example code that imports enough of pip to parse requirements files
22:41:22  <jfhbrook>etc
22:41:40  <jfhbrook>the core problem is that setup.py is pure python so you can't make your package managing tool save anything to it
22:41:49  <jfhbrook>well, one of the core problems anyway
22:42:52  <jfhbrook>this isn't even touching on virtualenvs, or wheels, or (ana)conda
22:43:02  <jfhbrook>or ~eggs~
22:43:12  <jfhbrook>wheels are at least Not Awful
22:44:32  <substack>do people in the community recognize that these issues are killing their platform?
22:45:50  <substack>but then I get a pretty sysadmin-y vibe from python people, who want to make it hard or controllable in the way that their existing systems work
22:46:40  <jfhbrook>yes and no
22:46:59  <jfhbrook>wheels are an effort to make binary distributions easier
22:47:07  <jfhbrook>which is a problem node hasn't tried to solve
22:47:26  <jfhbrook>and really, setup.py is pure python for the same reason that gypfiles and run hooks exist, like it's similar problems
22:47:50  <jfhbrook>and twine was an effort to make publishing easier, and the toml thing is in some peoples' minds meant to subsume most of setup.py
22:48:08  <jfhbrook>but you'll find a number of people that see wheels and say, mission accomplished!
22:48:28  <jfhbrook>for real though, it's way better than it was back when we were in college, with wheels and pip not sucking and setuptools just being widely available
22:48:37  <jfhbrook>used to have to use distutils which is basically Shitty Setuptools