[2020-03-27]
Hypothesis has a set of Pandas strategies for generating data [[pandas]][2020-05-05]
python - Run code before and after each test in py.test? - Stack Overflow [2019-08-02]
python - How should I structure a pytest test only package? - Stack Overflow [[testing]] [[project]] [[pip]][2020-04-02]
minimal-setup-py/setup.py at master · maet3608/minimal-setup-py pip3 install --user -e .
](#nstllnlydpndncsppnstllsr TIDDLYLINK) [2020-04-24]
local PIP dependency: if the repo is in /path/to/repo
, put HPI@git+file://DUMMY/path/to/repo@master
in setup.py
[[pip]][2019-12-15]
bast/pypi-howto: How to publish Python packages on PyPI. [[pypi]][2019-07-02]
Testing & Packaging · Homepage of Hynek Schlawack
[2018-09-04]
utcfromtimestamp – returns timestamp, unaware; fromtimestamp – returns offset + timestamp, unaware [2018-09-04]
ok, seems that it’s better to use pytz.utc.localize(tz_unaware_datetime)
[2020-05-02]
zachwill/moment: Dealing with dates in Python shouldn’t have to suck. [2020-05-02]
zachwill/moment: Dealing with dates in Python shouldn’t have to suck. [2019-09-22]
Python3 f-strings - A complete guide to the most well received feature of Python 3. /r/Python [2019-05-11]
To yield or not to yield [[yield]]
ast.dump(ast.parse("'a' in 'aa' in 'aaa'"))
](#ststdmpstprsnn TIDDLYLINK) [2018-06-18]
log optimizers i used [2018-06-11]
optimizing python CLI tools https://files.bemusement.org/talks/OSDC2008-FastPython/ [2019-01-01]
multiline string – lstrip(‘\n’) for nicer formatting! [2019-03-20]
Tweet from Vladislav Isenbaev (@isenbaev), at Mar 20, 03:48: pickle просто скотски медленный, если что - кратно медленнее даже json’а [2019-08-11]
multiprocessing vs multithreading vs asyncio in Python 3.4 - Stack Overflow [[concurrency]] [[performance]][2020-01-03]
adamchainz/patchy: Patch the inner source of python functions at runtime. [[lisp]][2019-12-31]
PyPy.js: Python in the web browser | Hacker News [[js]] [[webext]][2018-06-22]
difflib.unified_diff
is suuuuper slow… [2018-04-21]
scrapy debugging [[scrapy]][2018-08-30]
python’s for..else makes in ‘syntactially’ look like a total function typing.NamedTuple
](#stypngnmdtpl TIDDLYLINK) [2018-12-08]
get current function/method name [2019-04-30]
What’s the difference between marshmallow and sql-alchemy? /r/flask [2019-06-29]
dominatepp/.travis.yml at master · karlicoss/dominatepp [[ci]][2019-08-12]
use re.VERBOSE
for inline comments in regexes [2019-10-21]
python - What do (lambda) function closures capture? - Stack Overflow [[plt]][2019-12-30]
argparse — Parser for command-line options, arguments and sub-commands — Python 3.8.1 documentation [2020-01-07]
Performance — python-rapidjson 0.4 documentation [[json]][2019-07-19]
python - Argparse: Way to include default values in ‘–help’? - Stack Overflow [2019-12-31]
PyPy - packages http://packages.pypy.org [[pypy]][2019-07-21]
kython@git+https://github.com/karlicoss/kython.git@master dependency for setup.cfg [[pip]][2018-07-22]
PyCon 2018 Talk Videos : Python https://www.reddit.com/r/Python/comments/8j4ep6/pycon_2018_talk_videos/ [[towatch]][2019-08-02]
Basic usage — tox 3.13.3.dev13 documentation [2018-06-12]
if there is a ‘main.py’ in script dir, it gets imported – wtf???? [2019-07-20]
concurrent.futures https://docs.python.org/3.7/library/concurrent.futures.html?highlight=processpoolexecutor use map
[2019-08-11]
PyCQA/pyflakes: A simple program which checks Python source files for errors [2019-08-02]
posargs are needed to passing adhoc args, e.g. [[tox]][2018-04-17]
some misc notes from http import HTTPStatus
](#frmmprtstts TIDDLYLINK) [2018-01-21]
use nonlocal instead of global [[habit]][2019-04-22]
yield is often preferrable because python doesn’t have bindings in generators [2019-05-01]
there is a difference between returning generator and yield from generator. the latter keeps scope, which might be useful if you have open files [2019-07-30]
To yield or not to yield [[decorator]]
[2019-08-25]
https://docs.python.org/3.7/library/argparse.html argparse: use set_defaults
[2020-07-05]
How can I color Python logging output? - Stack Overflow [[logging]] [[kython]][2020-02-16]
Direct URL PEP 508 support and installing sub-dependencies from Git · Issue 5566 · pypa/pip [[pip]][2020-02-16]
Allow direct urls in installrequires · Issue 6301 · pypa/pip [[python]][2019-07-25]
rstojnic/lazydata: Lazydata: Scalable data dependencies for Python projects
[2019-12-31]
backoff · PyPI [2019-12-15]
Support automatic versioning setuptoolsscm-style? · Issue 140 · python-poetry/poetry install_requires
; needed to reinsall](#tsclrlyntdtctngchngsnnstllrqrsnddtrnsll TIDDLYLINK) [[tox]][2019-07-26]
python - pytest exits with no error but with "collected 0 items" - Stack Overflow [[pytest]][2019-10-26]
traceback — Print or retrieve a stack traceback — Python 3.8.0 documentation [[errors]][2019-11-09]
python - Run an OLS regression with Pandas Data Frame - Stack Overflow [2019-09-01]
vinta/awesome-python: A curated list of awesome Python frameworks, libraries, software and resources [[tui]][2020-03-12]
encode/httpx: A next generation HTTP client for Python. 🦋 [2020-09-02]
Python Prompt Toolkit 3.0 — prompttoolkit 3.0.2 documentation [[tui]] [[python]][2020-09-18]
testing - Python/tox Install a dependency as editable - Stack Overflow [[python]] [[tox]] [[pip]][2020-09-18]
testing - Python/tox Install a dependency as editable - Stack Overflow [[hpi]][2020-09-27]
python - What is the difference between venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenv, etc? - Stack Overflow [2019-08-25]
argparseweb · PyPI [2019-09-01]
vinta/awesome-python: A curated list of awesome Python frameworks, libraries, software and resources [[cli]][2019-08-02]
GrahamDumpleton/wrapt: A Python module for decorators, wrappers and monkey patching. [2020-03-31]
why it is hard – if you have 2fa you can’t upload packages [[pypi]]
[2019-12-15]
tox support python-poetry/poetry [2019-09-01]
KoffeinFlummi/Chronyk: A Python 3 library for parsing human-written times and dates [2019-11-17]
sampleproject/setup.py at master · pypa/sampleproject [2019-07-25]
pytest-profiling · PyPI [2020-10-06]
Brython [[python]] [[web]][2020-01-09]
logzero: Python logging made easy — logzero 1.5.0 documentation [2019-10-27]
Ability to execute certain tests sequentially while using -n (xdist) · Issue #385 · pytest-dev/pytest-xdist [2019-10-27]
pylint exceed maximum recursion depth · Issue #2388 · PyCQA/pylint [2019-10-27]
Search pylint configuration in setup.cfg and pyproject.toml · Issue #617 · PyCQA/pylint [2019-11-08]
How do I use regex in a SQLite query? - Stack Overflow [[sqlite]][2020-06-07]
Types at the edges in Python – MeadSteve’s Dev Blog [[python]][2020-12-08]
Exhaustiveness Checking with Mypy | Haki Benita [[python]] [[mypy]][2020-04-09]
naiquevin/pipdeptree: A command line utility to display dependency tree of the installed Python packages [NOT ACCEPTING PRs FOR A WHILE BECAUSE OF MAJOR REFACTORING IN ANOTHER BRANCH] [2020-04-23]
pandas/setup.py at master · pandas-dev/pandas [[pip]]
[2019-07-28]
kirankoduru/scrapy-programmatically: Running scrapy spider programmatically. [[scrape]][2020-04-23]
detect all subpackages properly · karlicoss/promnesia@f7451c4 [2020-04-05]
Configs suck? Try a real programming language | Hacker News [2020-10-14]
google/python-fire: Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. [[cli]][2020-04-23]
samuelhwilliams/Eel: A little Python library for making simple Electron-like HTML/JS GUI apps [[gui]][2020-04-15]
setuptools/_init_.py at master · pypa/setuptools [2020-04-30]
pkgutil — Package extension utility — Python 3.8.3rc1 documentation [2020-03-24]
PEP 593 – Flexible function and variable annotations | Python.org [2019-08-24]
Simple dependent types in Python - DEV Community 👩💻👨💻 [[mypy]] [[python]][2020-07-08]
SymPy - a Python library for symbolic mathematics | Hacker News [[sympy]] [[sage]][2020-07-26]
The Qt Console for Jupyter — Jupyter Qt Console 4.7.5 documentation [2020-10-15]
Frame Hacks [[python]][2019-03-17]
pylint useful stuff [[python]][2020-05-25]
docopt v argparse • Dimitri Merejkowsky [[python]][2019-12-08]
Dynamically change slots in Python 3 - Stack Overflow [[python]][2020-10-24]
LiveCode is a modern day HyperCard (2019) | Hacker News [[python]] [[gui]][2020-01-15]
Show HN: CrossHair – SMT Assisted Testing for Python [[testing]] [[python]][2019-11-10]
lihaoyi/macropy: Macros in Python: quasiquotes, case classes, LINQ and more! [[macro]] [[python]] [[lisp]]
[2020-01-09]
What does it do? — Logbook [[python]] [[logging]][2019-11-24]
How formulas work — patsy 0.5.1+dev documentation [2019-12-20]
Pipenv: promises a lot, delivers very little | Chris Warrick [[pip]][2020-08-19]
installrequires vs requirements files — Python Packaging User Guide [[pip]][2019-04-10]
kynan/nbstripout: strip output from Jupyter and IPython notebooks [[git]] [[ipython]][2020-08-22]
Plotly vs. Bokeh: Interactive Python Visualisation Pros and Cons | Paul Iacomi [[bokeh]] [[viz]][2020-03-14]
jestem króliczkiem on Twitter: "or, you can encode dependencies in types: @dataclass(init=False) class FancyPath: path: Path mtime: float def _init_(self, path: Path): self.path = path self.mtime = path.stat().stmtime" / Twitter [[cachew]] [[python]][2020-04-11]
Traps for the Unwary in Python’s Import System — Nick Coghlan’s Python Notes 1.0 documentation [[python]][2020-05-13]
amontalenti/elements-of-python-style: Goes beyond PEP8 to discuss what makes Python code feel great. A Strunk & White for Python. [[python]][2020-05-18]
The Definitive Guide to Python import Statements | Chris Yeh [[python]][2020-08-09]
resize ipython notebook output window - Stack Overflow [2020-01-26]
Not really. Enable something like MyPy or PyType on a big enough codebase with z… | Hacker News [2020-07-21]
tmbo/questionary: Python library to build pretty command line user prompts ✨Easy to use multi-select lists, confirmations, free text prompts … [[tui]][2020-09-07]
Good Integration Practices — pytest documentation [2019-07-23]
Python Scatterplot Matrix | Plotly [[viz]][2019-08-18]
box/flaky: Plugin for nose or pytest that automatically reruns flaky tests. [[pytest]][2019-03-05]
ipython -pylab [[ipython]][2018-12-23]
lambdalisue/jupyter-vim-binding: Jupyter meets Vim. Vimmer will fall in love. [[vim]] [[jupyter]]
[2019-05-10]
Is SQLAlchemy recommended for a highly transactional, large volume database? /r/Python [2020-02-16]
Command Line Scripts — Python Packaging Tutorial [[pip]]
[2019-10-18]
Hy - Wikipedia [[lisp]] [[python]][2019-12-18]
Python VS Common Lisp, workflow and ecosystem - Lisp journey [[lisp]] [[python]][2019-02-27]
When do you us Beautiful Soup or Scrapy? : Python [[scrape]] [[python]]
[2019-04-07]
DataFrame — pandas 0.24.2 documentation [[pandas]][2019-04-07]
Comparison with SQL — pandas 0.24.2 documentation [[pandas]][2019-02-14]
There’s now a dead simple way to slap a web interface on a command line script : Python (click library) [[tui]] [[web]][2020-05-26]
multiprocess.Pool + submitasync work properly with timeouts… unlike concurrent.futures? [[python]][2020-03-08]
dataset: right, so synccolumn is taking quite a bit of time… I suppose because of column detection stuff [[sqlite]] [[python]][2019-07-23]
date index [[pandas]] [[python]] [[data]][2019-07-23]
Which one is better: Bokeh or Plotly? - Quora [[viz]] [[python]][2019-07-23]
Plotly vs Bokeh vs … : Python [[viz]] [[python]][2019-05-18]
unwrap vs assert: assert is a statement, so can’t do in one line [[python]][2018-11-10]
imp.loadsource for loading python module from file [[python]][2018-06-21]
Ok, to prevent pollution just assert everything in _all isinstance [[python]][2018-08-26]
dill seems to be superior to pickle [2019-02-12]
Choosing a Python Visualization Tool - Practical Business Python [[python]] [[viz]][2019-02-12]
Quickstart — Bokeh 1.0.4 documentation [[viz]]
[2019-02-12]
python - how to set readable xticks in seaborn’s facetgrid? - Stack Overflow [[plotting]] [[seaborn]][2019-12-12]
#45 Control color of each marker | seaborn – The Python Graph Gallery [[seaborn]][2020-01-17]
python - Format x-axis on chart created with pandas plot method - Stack Overflow [[drill]] [[pandas]][2020-04-18]
screw hatch. it’s got some weird defaults and doesn’t provide much value [[pip]][2020-02-16]
python - Argparse: Way to include default values in ‘–help’? - Stack Overflow [2019-07-20]
I created a GitHub repository explaining the complete process of gathering data, transforming it, getting insights and making plots using pandas, NumPy, Matplotlib and Seaborn. /r/Python [[python]] [[viz]][2020-02-18]
google/pytype: A static type analyzer for Python code [2020-01-03]
Comparing Python Command-Line Parsing Libraries – Argparse, Docopt, and Click | Hacker News [[python]][2020-10-24]
sdispater/pendulum: Python datetimes made easy [[python]] [[datetime]][2020-09-05]
fastcore: An Underrated Python Library | fastpages [[python]][2021-01-05]
On Repl-Driven Programming | Hacker News [[repl]][2020-11-28]
ast — Abstract Syntax Trees — Python 3.9.1rc1 documentation [2019-12-27]
Why Python is my Favorite Language • Buttondown [2020-12-17]
wrapt · PyPI [2020-12-13]
pydot/pydot: Python interface to Graphviz’s Dot language [[viz]][2020-12-05]
NBSafety Fearless interactivity for Jupyter notebooks [2020-12-29]
Top 10 Python libraries of 2020 you should know about | Tryolabs Blog [2020-09-03]
Overviews — PyViz 0.0.1 documentation [2020-12-05]
fastai/nbdev: Create delightful python projects using Jupyter Notebooks [2020-12-07]
Running Python code in a subprocess with a time limit | Simon Willison’s TILs [2020-12-07]
tiangolo/typer: Typer, build great CLIs. Easy to code. Based on Python type hints. [2020-11-30]
Allow to customize location of .eggs directory · Issue #1854 · pypa/setuptools [2020-10-20]
PyInstrument – A statistical Python profile that focuses on the slow parts | Hacker News [2020-11-25]
python - Extract traceback info from an exception object - Stack Overflow [[errors]][2020-05-28]
Hypermodern Python | Lobsters [2020-05-30]
The Hard Part of Learning a Language • Hillel Wayne [[toblog]] [[python]][2020-01-04]
python - How can I make setuptools install a package that’s not on PyPI? - Stack Overflow [2020-04-17]
pypa/gh-action-pypi-publish: GitHub Action for publishing pre-built distribution packages to PyPI (from `dist/` dir) [[githubci]][2020-04-18]
Publishing package distribution releases using GitHub Actions CI/CD workflows — Python Packaging User Guide [[githubci]][2020-12-22]
uva-graphics/autoimp: Automatic Python imports [2020-01-25]
My Python setup for 2020 | Noam Elfanbaum https://noamelf.com/posts/my-python-setup-for-2020/ [2019-09-17]
Vendoring Python dependencies with pip - Underdog.io Engineering Team - Medium https://medium.com/underdog-io-engineering/vendoring-python-dependencies-with-pip-b9eb6078b9c0 [[python]][2020-02-04]
PyPy - Performance https://pypy.org/performance.html#profiler [2020-05-03]
PEP 612 – Parameter Specification Variables | Python.org [2020-01-06]
Please Fix Your Decorators · Homepage of Hynek Schlawack https://hynek.me/articles/decorators/ [2019-09-23]
bast/somepackage: Show how to structure a Python project. https://github.com/bast/somepackage [2019-11-17]
holtzy/The-Python-Graph-Gallery: A website displaying hundreds of charts made with Python https://github.com/holtzy/The-Python-Graph-Gallery [[viz]][2019-12-05]
Debugging Jupyter notebooks - David Hamann https://davidhamann.de/2017/04/22/debugging-jupyter-notebooks/ [2019-12-13]
python-poetry/poetry: Python dependency management and packaging made easy. https://github.com/python-poetry/poetry [2020-12-13]
Do You Have Any Offline Programming Techniques or Tools? | Lobsters [2020-02-15]
pschanely/CrossHair: A static analysis tool for Python that blurs the line between testing and type systems. https://github.com/pschanely/CrossHair [2020-04-15]
egg-info in local directory makes pip think package is installed · Issue #6558 · pypa/pip [2020-04-15]
I hate easy-install.pth · Issue #929 · fonttools/fonttools [2020-05-16]
macropy: syntactic macros for Python | Lobsters [2020-08-22]
Installation — HoloViews 1.13.3 documentation [2021-02-14]
ok, naming test modules the same as originals doesn’t end up well… [[python]][2021-02-09]
python - Using property() on classmethods - Stack Overflow [2021-02-10]
Web Scraping 101 with Python | Hacker News [2021-02-23]
Tiendil/smart-imports: smart imports for Python [[python]][2021-02-21]
djrobstep/logx: best practice, zero config python logging [[python]] [[logging]][2021-02-23]
textwrap — Text wrapping and filling — Python 3.8.5 documentation [2020-04-09]
thebjorn/pydeps: Python Module Dependency graphs https://github.com/thebjorn/pydeps [[project]] [[python]][2020-05-15]
Hello flake8 • Dimitri Merejkowsky [[pylint]][2020-07-06]
Brython – A Python 3 implementation for client-side web programming | Hacker News [[python]] [[js]][2021-03-16]
leeoniya/uPlot: 📈 A small, fast chart for time series, lines, areas, ohlc & bars [[python]] [[dataviz]][2021-04-02]
cleanup; remove unused imports by seanbreckenridge · Pull Request 151 · karlicoss/HPI [[flake8]][2021-03-23]
Iterables vs. Iterators vs. Generators » nvie.com [[python]][2021-03-07]
hhatto/autopep8: A tool that automatically formats Python code to conform to the PEP 8 style guide. [[python]][2021-03-20]
python - Suspend on exception in pdb - Stack Overflow [[python]] [[debug]][2021-04-04]
How to make an unaware datetime timezone aware in python - Stack Overflow [[tz]][2021-04-06]
python - How do I parse an ISO 8601-formatted date? - Stack Overflow [2021-03-30]
setuptools - python: simple example for a python egg with a one-file source file? - Stack Overflow [[pip]][2021-04-04]
Utilities — Click Documentation (7.x) [[cli]] [[python]][2021-04-16]
pythonql/pythonql: A Query Language extension for Python: Query files, objects, SQL and NoSQL databases with a built-in query language [[python]][2021-05-01]
PythonPackagingTerminology - Python Wiki [[pip]][2020-03-27]
Hypothesis has a set of Pandas strategies for generating data [[pandas]]https://www.hillelwayne.com/talks/beyond-unit-tests/
[2020-05-05]
python - Run code before and after each test in py.test? - Stack Overflowpy.test fixtures are a technically adequate method to achieve your purpose.
You just need to define a fixture like that:
@pytest.fixture(autouse=True)
def run_around_tests():
[2019-08-02]
python - How should I structure a pytest test only package? - Stack Overflow [[testing]] [[project]] [[pip]]https://stackoverflow.com/questions/48111426/how-should-i-structure-a-pytest-test-only-package/48350323#48350323
distribute tests with package..
[2020-03-08]
what-studio/profiling: An interactive continuous Python profilerhttps://github.com/what-studio/profiling
profiling live-profile webserver.py
ok, this is really nice and easy to use
[2020-07-28]
kinda unmaintainerd though?[2019-07-20]
profiling with cprofpython3 -m cProfile -o stats.prof script.py
snakeviz stats.prof
[2020-01-13]
rkern/lineprofiler: Line-by-line profiling for Pythonhttps://github.com/rkern/line_profiler
[2018-03-10]
profilingpython3 -m cProfile -s tottime process.py | less
sudo apt install kcachegrind
pip3 install --user pyprof2calltree
https://julien.danjou.info/guide-to-python-profiling-cprofile-concrete-case-carbonara/
python -m cProfile -o myscript.cprof myscript.py
pyprof2calltree -k -i myscript.cprof
[2020-04-02]
minimal-setup-py/setup.py at master · maet3608/minimal-setup-pyhttps://github.com/maet3608/minimal-setup-py/blob/master/setup.py
pip3 install --user -e .
ok, apparently pip does use some sort of ‘set compiling’, so worth doing that
https://github.com/pypa/pip/issues/988
[2020-04-24]
local PIP dependency: if the repo is in /path/to/repo
, put HPI@git+file://DUMMY/path/to/repo@master
in setup.py
[[pip]]no idea why you need DUMMY bit, must be some parsing quirk :shrug:
also, sometimes it needs //DUMMY, sometimes ///DUMMY ???
[2019-12-15]
bast/pypi-howto: How to publish Python packages on PyPI. [[pypi]]https://github.com/bast/pypi-howto
[2019-07-02]
Testing & Packaging · Homepage of Hynek Schlawackhttps://hynek.me/articles/testing-packaging/
Your tests do not run against the package as it will be installed by its users. They run against whatever the situation in your project directory is.
[2019-07-25]
oTo achieve that, you just move your packages into a src directory and add a where argument to find_packages() in your setup.py:
setup(
[...]
packages=find_packages(where="src"),
package_dir={"": "src"},
)
ok, that seems to be way easier
hatch build --clean --verbose
hatch release --strict "$@"
[2019-04-09]
with ipdb.launch_ipdb_on_exception()
[[habit]][2019-12-05]
python3.7 has a breakpoint()
builtin + more https://hackernoon.com/python-3-7s-new-builtin-breakpoint-a-quick-tour-4f1aebc444cipdb pp
for pretty print [[habit]]however there are not any tools which do that…
https://github.com/openstack/bandit
[2021-01-16]
wouldn’t say it’s super useful… might detect occasional eval or whatever, but won’t help with more sophisticated stuff[2019-04-02]
peopledoc/workalendar: Worldwide holidays and workdays computational toolkit.https://github.com/peopledoc/workalendar
[2018-12-09]
Altair: Declarative Visualization in Python — Altair 2.3.0 documentation [[viz]]https://altair-viz.github.io/index.html
[2017-12-17]
from . import modulelocal import
[2020-01-17]
Alone Djangonaut – How python’s import machinery workshttps://manikos.github.io/how-pythons-import-machinery-works
origin
[2019-06-29]
python - Relative imports for the billionth time - Stack Overflowhttps://stackoverflow.com/questions/14132789/relative-imports-for-the-billionth-time
.. are only relative in a package
However, if your module's name is __main__, it is not considered to be in a package. Its name has no dots, and therefore you cannot use from .. import statements inside it. If you try to do so, you will get the "relative-import in non-package" error.
[2019-06-11]
relative imports are discouraged[2018-09-04]
utcfromtimestamp – returns timestamp, unaware; fromtimestamp – returns offset + timestamp, unawareIn : datetime.fromtimestamp(123)
Out: datetime.datetime(1970, 1, 1, 4, 2, 3)
In : datetime.utcfromtimestamp(123)
Out: datetime.datetime(1970, 1, 1, 0, 2, 3)
[2018-09-04]
ok, seems that it’s better to use pytz.utc.localize(tz_unaware_datetime)
[2020-05-02]
zachwill/moment: Dealing with dates in Python shouldn’t have to suck.# Create a moment with words in it
moment.date("December 18, 2012")
[2020-05-02]
zachwill/moment: Dealing with dates in Python shouldn’t have to suck.# Create a moment that would normally be pretty hard to do
moment.date("2 weeks ago")
[2018-07-05]
creating top level logger is always bad (may happen before configuring). use factory method [[logging]]-k: keyword search
-g: gui
related #repl
[2019-04-09]
python - Use IPython magic functions in ipdb shell - Stack Overflowhttps://stackoverflow.com/questions/16184487/use-ipython-magic-functions-in-ipdb-shell
shell.find_line_magic('cpaste')()
[2019-09-22]
Python3 f-strings - A complete guide to the most well received feature of Python 3. /r/PythonThat’s a part of python’s data model like `len`, `reversed`, `iter`, …:
`datetime` simply defines [`datetime.__format__`](https://docs.python.org/3/library/datetime.html#datetime.date.__format__). The method [is explained here](https://docs.python.org/3/reference/datamodel.html#object.__format__).
[2019-05-11]
To yield or not to yield [[yield]]https://barahilia.github.io/blog/computers/2017/01/04/to-yield-or-not-to-yield.html
Finally we came to this. To me it is more important that generators make code more elegant. Performance is usually relevant to smaller hot spots.
The idea is simple: in comparison to list interface where computation results are first saved and are returned only at the end, “yielding” could reach faster code and reduce memory usage. As a quick simulation we may use %timeit magic command in IPython with the following two functions:
[2019-07-30]
good point about separating validation and generationast.dump(ast.parse("'a' in 'aa' in 'aaa'"))
[2018-06-18]
log optimizers i used[2018-06-11]
optimizing python CLI tools https://files.bemusement.org/talks/OSDC2008-FastPython/interpreter – about 10ms
lazy imports
profile slow imports
process remaining arguments
attrs – could be interesting… might solve stupid namedtuple addition etc.
https://github.com/python-attrs/attrs
This gives you the power to use actual classes with actual types in your code instead of confusing tuples or confusingly behaving namedtuples. Which in turn encourages you to write small classes that do one thing well. Never again violate the single responsibility principle just because implementing init et al is a painful drag.
[2019-01-01]
multiline string – lstrip(‘\n’) for nicer formatting![2019-03-20]
Tweet from Vladislav Isenbaev (@isenbaev), at Mar 20, 03:48: pickle просто скотски медленный, если что - кратно медленнее даже json’а<https://twitter.com/isenbaev/status/1108213595920166912 >
[2019-08-11]
multiprocessing vs multithreading vs asyncio in Python 3.4 - Stack Overflow [[concurrency]] [[performance]]if io_bound:
if io_very_slow:
print("Use Asyncio")
else:
print("Use Threads")
else:
print("Multi Processing")
[2020-01-03]
adamchainz/patchy: Patch the inner source of python functions at runtime. [[lisp]]https://github.com/adamchainz/patchy#patchy
Patch the inner source of python functions at runtime.
[2019-12-31]
PyPy.js: Python in the web browser | Hacker News [[js]] [[webext]]https://news.ycombinator.com/item?id=17819138
[2018-06-22]
difflib.unified_diff
is suuuuper slow…[2018-04-21]
scrapy debugging [[scrapy]]scrapy shell
withsecrets scrapy shell
from scrapy.http import FormRequest
request=FormRequest(url=’http://www.quantified-mind.com/login’,formdata={‘Email’: USER,’Password’:PASSWORD,})
fetch(request) – redirects by default
sets response variable
you can do view(response) to view in browser
mind that it might be different from browsing in chrome. because of user agent?
[2018-08-30]
python’s for..else makes in ‘syntactially’ look like a total functiontyping.NamedTuple
def N(*args, **kwargs):
reurn NamedTuple(whatevs)
contextlib.redirect_stdout
[2018-12-08]
get current function/method namedef fname():
import inspect
return inspect.stack()[1][3]
[2019-04-30]
What’s the difference between marshmallow and sql-alchemy? /r/flaskMarshmallow “converts” (deserializes) dicts to SQLAlchemy models or serializes SQLAlchemy models to dicts.
SQLAlchemy is an ORM. It maps database schema (tables) and data to Python objects.
The two packages complement each other. They cannot and do not replace each others’ functionality.
Flask-Marshmallow gives you a convenient interface to Marshmallow under Flask.
[2019-06-29]
dominatepp/.travis.yml at master · karlicoss/dominatepp [[ci]]https://github.com/karlicoss/dominatepp/blob/master/.travis.yml
hmm, minimalistic travis is not so bad..
[2019-08-12]
use re.VERBOSE
for inline comments in regexes[2019-10-21]
python - What do (lambda) function closures capture? - Stack Overflow [[plt]]https://stackoverflow.com/questions/2295290/what-do-lambda-function-closures-capture
Scoping in Python is dynamic and lexical. A closure will always remember the name and scope of the variable, not the object it's pointing to.
[2019-12-30]
argparse — Parser for command-line options, arguments and sub-commands — Python 3.8.1 documentationhttps://docs.python.org/3/library/argparse.html
metavar - A name for the argument in usage messages.
[2020-01-07]
Performance — python-rapidjson 0.4 documentation [[json]]https://python-rapidjson.readthedocs.io/en/latest/benchmarks.html
ok, so loads speedups are not that significant for my purposes
[2019-07-19]
python - Argparse: Way to include default values in ‘–help’? - Stack OverflowAdd '%(default)' to the help parameter to control what is displayed.
[2019-12-31]
PyPy - packages http://packages.pypy.org [[pypy]][2019-07-21]
kython@git+https://github.com/karlicoss/kython.git@master dependency for setup.cfg [[pip]][2018-07-22]
PyCon 2018 Talk Videos : Python https://www.reddit.com/r/Python/comments/8j4ep6/pycon_2018_talk_videos/ [[towatch]][2019-08-02]
Basic usage — tox 3.13.3.dev13 documentationhttps://tox.readthedocs.io/en/latest/example/basic.html#integration-with-setup-py-test-command
As the python eco-system rather moves away from using setup.py as a tool entry point it’s maybe best to not go for any setup.py test integration.
[2018-06-12]
if there is a ‘main.py’ in script dir, it gets imported – wtf????(while debugging telegram2org)
[2019-07-20]
concurrent.futures https://docs.python.org/3.7/library/concurrent.futures.html?highlight=processpoolexecutor use map
[2019-08-11]
PyCQA/pyflakes: A simple program which checks Python source files for errorshttps://github.com/PyCQA/pyflakes
Pyflakes makes a simple promise: it will never complain about style, and it will try very, very hard to never emit false positives.
Pyflakes is also faster than Pylint or Pychecker. This is largely because Pyflakes only examines the syntax tree of each file individually. As a consequence, Pyflakes is more limited in the types of things it can check.
[2019-08-02]
posargs are needed to passing adhoc args, e.g. [[tox]]https://tox.readthedocs.io/en/latest/example/general.html#interactively-passing-positional-arguments
[2018-04-17]
some misc notes## Print with @padding
`print("{:>d}{}".fomat(i, a[i]))` prints i aligned to at least two spaces as a decimal.
## Infinite dict
~~~ { .python }
infinite_defaultdict = lambda: defaultdict(infinite_defaultdict)
d = infinite_defaultdict()
d['x']['y']['z'] = 10
~~~
## Web server
to start a webserver to serve files from your current dir: python -m SimpleHTTPServer
@enums
## Enums
from enum import Enum
class Fruit(Enum):
APPLE = 0
ORANGE = 1
## Generating @random color
color = "#%06x" % random.randint(0, 0xFFFFFF)
python setup.py install --force
#singleton
@singleton
def singleton(cls):
instances = {}
def get_instance():
if cls not in instances:
instances[cls] = cls()
return instances[cls]
return get_instance
TODO tbh, easier with lru_cache(1)?
from http import HTTPStatus
[2018-01-21]
use nonlocal instead of global [[habit]][2019-04-22]
yield is often preferrable because python doesn’t have bindings in generators[2019-05-01]
there is a difference between returning generator and yield from generator. the latter keeps scope, which might be useful if you have open files[2019-07-30]
To yield or not to yield [[decorator]]https://barahilia.github.io/blog/computers/2017/01/04/to-yield-or-not-to-yield.html
hmm. if I decorate function with list constructor, I can get both ease of use and yield in function’s body
[2019-07-30]
huh, some things are mentioned in the original post actuallyThe best answer in 2020 is to use poetry.
http://poetry.eustace.io
[2021-01-16]
eh, don’t think it worked for me, I prefer to rely on setup.py[2019-08-25]
https://docs.python.org/3.7/library/argparse.html argparse: use set_defaults
One particularly effective way of handling sub-commands is to combine the use of the add_subparsers() method with calls to set_defaults() so that each subparser knows which Python function it should execute. For example:
This way, you can let parse_args() do the job of calling the appropriate function after argument parsing is complete. Associating functions with actions like this is typically the easiest way to handle the different actions for each of your subparsers. However, if it is necessary to check the name of the subparser that was invoked, the dest keyword argument to the add_subparsers() call will work:
[2019-09-02]
ah, could pass lambda to forward to actual handler function![2020-07-05]
How can I color Python logging output? - Stack Overflow [[logging]] [[kython]]2020 code, no additional packages required, Python 3
[2020-02-16]
Direct URL PEP 508 support and installing sub-dependencies from Git · Issue 5566 · pypa/pip [[pip]]https://github.com/pypa/pip/issues/5566#issuecomment-402417467
We disabled the ability to use PEP 508 URL requirements in dependencies, since we don't want that a package installed from PyPI to result in the pip reaching out to an arbitary web URL. Basically, pip install spam should not make pip reach out to anything except PyPI.
[2020-02-16]
Allow direct urls in installrequires · Issue 6301 · pypa/pip [[python]]https://github.com/pypa/pip/issues/6301
ugh. so I can't have URL dependencies if it's meant to be on pypi???
[2019-07-25]
rstojnic/lazydata: Lazydata: Scalable data dependencies for Python projectshttps://github.com/rstojnic/lazydata
[2020-03-27]
so it kinda keeps textual ‘submodules’ for data??[2019-08-02]
like in tz providerpy, more-itertools, zipp, importlib-metadata, pluggy, six, pyparsing, packaging, atomicwrites, wcwidth, attrs, pytest, orger
[2019-12-31]
backoff · PyPIhttps://pypi.org/project/backoff/
It is also possible to specify an alternate logger with the logger keyword argument. If a string value is specified the logger will be looked up by name.
We have moved our dependency management from pipenv to poetry and hasn’t been more happier than now working with and publish Python modules.
Now we use pyenv with poetry to run all our projects in Python with venv in project instead of decided by poetry default settings. We changed the settings with:
poetry config settings.virtualenvs.in-project true After this in hgignore or gitignore added .venv folder.
Now everything is the way we wanted, with Pipenv many times faced issues that the project worked with requirements.txt but not in Pipenv. Didn’t have this issue moving to poetry yet.
Also with emacs support and automated deployment tools the predictability of poetry made our team easy to work with and publish Python application modules.
[2019-12-15]
Support automatic versioning setuptoolsscm-style? · Issue 140 · python-poetry/poetryhttps://github.com/python-poetry/poetry/issues/140
right, poetry can't infer version...
install_requires
; needed to reinsall [[tox]][2019-07-26]
python - pytest exits with no error but with "collected 0 items" - Stack Overflow [[pytest]]https://stackoverflow.com/questions/37353960/pytest-exits-with-no-error-but-with-collected-0-items
pytest gathers tests according to a naming convention. By default any file that is to contain tests must be named starting with test_ and any function in a file that should be treated as a test must also start with test_.
[2019-10-26]
traceback — Print or retrieve a stack traceback — Python 3.8.0 documentation [[errors]]https://docs.python.org/3/library/traceback.html#tracebackexception-objects
TracebackException Objects
hmm, could use that?
[2019-11-09]
python - Run an OLS regression with Pandas Data Frame - Stack Overflowhttps://stackoverflow.com/questions/19991445/run-an-ols-regression-with-pandas-data-frame
I think you can almost do exactly what you thought would be ideal, using the statsmodels package which was one of pandas' optional dependencies before pandas' version 0.20.0 (it was used for a few things in pandas.stats.)
[2019-09-01]
vinta/awesome-python: A curated list of awesome Python frameworks, libraries, software and resources [[tui]]https://github.com/vinta/awesome-python
urwid - A library for creating terminal GUI applications with strong support for widgets, events, rich colors, etc.
import logging
logging.basicConfig()
def bad():
raise RuntimeError('BAD')
xx = RuntimeError('while running "test"')
ex = None
try:
bad()
except Exception as e:
ex = e
ex.__cause__ = xx
logging.error('inside!')
logging.exception(ex)
logging.error('outside! note the empty stacktrace :(')
logging.exception(ex)
logging.error("also __cause__ is ignored even though it's present: '%s'", ex.__cause__)
# I guess it just doesn't use __cause__, only traceback information...
test()
In [20]: ds = "Sep 18 2018 5:48:23 UTC"
In [21]: _TIME_FORMAT = "%b %d %Y %H:%M:%S %Z"
In [22]: datetime.strptime(ds, _TIME_FORMAT)
Out[22]: datetime.datetime(2018, 9, 18, 5, 48, 23)
fucking hell..
[2020-03-27]
see takeout provider[2020-03-12]
encode/httpx: A next generation HTTP client for Python. 🦋https://github.com/encode/httpx
HTTPX is a fully featured HTTP client for Python 3, which provides sync and async APIs, and support for both HTTP/1.1 and HTTP/2.
[2020-09-02]
Python Prompt Toolkit 3.0 — prompttoolkit 3.0.2 documentation [[tui]] [[python]][2020-09-18]
testing - Python/tox Install a dependency as editable - Stack Overflow [[python]] [[tox]] [[pip]]how to install a dependency as editable
[2020-09-18]
testing - Python/tox Install a dependency as editable - Stack Overflow [[hpi]]add this to developer guide.. fucking hell
[2020-09-27]
python - What is the difference between venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenv, etc? - Stack Overflowpipenv- like venv - can be used to create virtual envelopes but additionally rolls-in package management and vulnerability checking functionality. Instead of using requirements.txt, pipenv delivers package management via Pipfile. As PyPA endorses pipenv for PACKAGE MANAGEMENT, that would seem to imply pipfile is to supplant requirements.txt.
HOWEVER: pipenv uses virtualenv as its tool for creating virtual envelopes, NOT venv which is endorsed by PyPA as the go-to tool for creating virtual envelopes.
[2019-08-25]
argparseweb · PyPIhttps://pypi.org/project/argparseweb
[2019-09-01]
vinta/awesome-python: A curated list of awesome Python frameworks, libraries, software and resources [[cli]]https://github.com/vinta/awesome-python
Command-line Interface Development
Libraries for building command-line applications.
Command-line Application Development
[2019-08-02]
GrahamDumpleton/wrapt: A Python module for decorators, wrappers and monkey patching.https://github.com/GrahamDumpleton/wrapt
It therefore goes way beyond existing mechanisms such as functools.wraps() to ensure that decorators preserve introspectability, signatures, type checking abilities etc. Th
https://github.com/pypa/setuptools_scm/#default-versioning-scheme
def semcal(v):
tag = v.tag.base_version
assert len(tag.split('.')) == 2, tag
v.time
# tag is
breakpoint()
pass
if __name__ == '__main__':
[pkg] = find_packages('src')
setup(
name=pkg,
# version='0.1.1',
# use_scm_version=True,
use_scm_version={
'version_scheme': semcal,
},
setup_requires=['setuptools_scm'],
[2020-03-31]
why it is hard – if you have 2fa you can’t upload packages [[pypi]][2020-03-31]
ah ok, actually it allows for a token, so even better![2019-12-15]
tox support python-poetry/poetryhttps://github.com/python-poetry/poetry/issues/222
For now, you can use poetry with tox by using something similar to what I did in pendulum: https://github.com/sdispater/pendulum/blob/master/tox.ini
Although, beware that you may need to change `find_packages()` to `find_namespace_packages()` in your setup.py.
I get burned by that one a lot!
ldisplay_md("hi")
TODO shit. try and work on it?
also provide these as utils..
from IPython.display import display, Latex
display(Markdown("Heat equation:"), heat_eq)
display(Markdown("Boundary conditions:"))
display(Latex(r"\begin{cases} x \\ y \end{cases}"), bc_left, bc_right)
display(Markdown('hi'))
That doesn't look great. `display` is quoting plain
[2019-09-01]
KoffeinFlummi/Chronyk: A Python 3 library for parsing human-written times and dateshttps://github.com/KoffeinFlummi/Chronyk
[2019-11-17]
sampleproject/setup.py at master · pypa/sampleprojecthttps://github.com/pypa/sampleproject/blob/master/setup.py
# This field corresponds to the "Description-Content-Type" metadata field:
# https://packaging.python.org/specifications/core-metadata/#description-content-type-optional
long_description_content_type='text/markdown', # Optional (see note above)
AttributeError: unexpected attribute 'color' to Line, similar attributes are line_color
[2019-07-25]
pytest-profiling · PyPIhttps://pypi.org/project/pytest-profiling/
Even putting aside it's approach to dependency management, Poetry has a fond place in my heart for making it so much easier to publish to PyPI.
If poetry did nothing but simply the process of publishing and updating python packages, it would still be an amazing tool.
[2020-10-06]
Brython [[python]] [[web]]Speed of execution is similar to CPython for most operations.
[2020-01-09]
logzero: Python logging made easy — logzero 1.5.0 documentationhttps://logzero.readthedocs.io/en/latest/
logzero.setup_logger(name=None, logfile
https://github.com/marshmallow-code/marshmallow
zoopla/zoopla/schemas.py
PandaPy has the speed of NumPy and the usability of Pandas - https://news.ycombinator.com/item?id=22142869
[2019-10-27]
Ability to execute certain tests sequentially while using -n (xdist) · Issue #385 · pytest-dev/pytest-xdisthttps://github.com/pytest-dev/pytest-xdist/issues/385
Isn't this enough?
py.test -m sequential
py.test -m "non sequential" -n8
[2019-10-27]
pylint exceed maximum recursion depth · Issue #2388 · PyCQA/pylinthttps://github.com/PyCQA/pylint/issues/2388
Thanks for the tip. I actually had that setting before and still keep it on. --extension-pkg-whitelist=numpy
However, after upgrading to later versions of python and pylint and astroid I no longer have the issue even with the numpy whitelist setting.
Python 3.7.1
pylint 2.3.1
astroid 2.2.5
[2019-10-27]
Search pylint configuration in setup.cfg and pyproject.toml · Issue #617 · PyCQA/pylinthttps://github.com/PyCQA/pylint/issues/617#event-2701192212
Search pylint configuration in setup.cfg and pyproject.toml
[2019-11-08]
How do I use regex in a SQLite query? - Stack Overflow [[sqlite]]https://stackoverflow.com/questions/5071601/how-do-i-use-regex-in-a-sqlite-query
With python, assuming con is the connection to SQLite, you can define the required UDF by writing:
con.create_function('regexp', 2, lambda x, y: 1 if re.search(x,y) else 0)
[2020-06-07]
Types at the edges in Python – MeadSteve’s Dev Blog [[python]]Pydantic checks that each key I expected exists and is of the correct type. So now all the assumptions I’ve made about the shape of the data is a runtime contract, expressed in native python. If in production it turns out that description is, in fact, optional I’ll get a very descriptive error and the code will fail early.
d for d in sorted(pkg_resources.working_set, key=lambda p: p.project_name)]
[2020-12-08]
Exhaustiveness Checking with Mypy | Haki Benita [[python]] [[mypy]]Exhaustiveness Checking
use else clause with NoReturn, then mypy assists in refining
wow! * (same plot) vs + (different plots) is pretty clever!
also I like how multiplication doesn't commute so the 'first' plot wins the layout parameters
[2020-04-09]
naiquevin/pipdeptree: A command line utility to display dependency tree of the installed Python packages [NOT ACCEPTING PRs FOR A WHILE BECAUSE OF MAJOR REFACTORING IN ANOTHER BRANCH]https://github.com/naiquevin/pipdeptree
[2020-04-23]
pandas/setup.py at master · pandas-dev/pandas [[pip]]Docum
[2020-05-09]
nice, pandas is using quite elaborate setup.py with proper documentation links[2019-07-28]
kirankoduru/scrapy-programmatically: Running scrapy spider programmatically. [[scrape]]https://github.com/kirankoduru/scrapy-programmatically
[2020-04-23]
detect all subpackages properly · karlicoss/promnesia@f7451c4tests/integration_test.py::test_example_config
/Users/runner/runners/2.169.1/work/promnesia/promnesia/.tox/py3/lib/python3.7/site-packages/hug/use.py:185: DeprecationWarning: invalid escape sequence \d
status_code = int("".join(re.findall("\d+", response.status)))
[2020-04-05]
Configs suck? Try a real programming language | Hacker Newshttps://news.ycombinator.com/item?id=22787332
mjw1007 28 minutes ago [-]
One variant of this is to use Python syntax but parse it with the `ast` module rather than evaluating it.
This avoids the security problems and the risk that someone will start to write programs inside the configuration file, but gives you the reasonably nice and powerful syntax.
[2020-10-14]
google/python-fire: Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. [[cli]]ython Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
[2020-04-23]
samuelhwilliams/Eel: A little Python library for making simple Electron-like HTML/JS GUI apps [[gui]][2020-04-15]
setuptools/_init_.py at master · pypa/setuptoolswhy is it not including files at all??
import sys
# make sure it doesn't need pytest in prod
if 'pytest' in sys.modules:
import pytest # type: ignore
else:
from unittest.mock import Mock
pytest = Mock()
[2020-04-30]
pkgutil — Package extension utility — Python 3.8.3rc1 documentationpkgutil.extend_path(path, name)
Extend the search path for the modules which comprise a package. Intended use is to place the following code in a package’s __init__.py:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
This will add to the package’s __path__ all subdirectories of directories on sys.path named after the package. This is useful if one wants to distribute different parts of a single logical package as multiple directories.
[2020-03-24]
PEP 593 – Flexible function and variable annotations | Python.orghttps://www.python.org/dev/peps/pep-0593/
[2019-08-24]
Simple dependent types in Python - DEV Community 👩💻👨💻 [[mypy]] [[python]]https://dev.to/wemake-services/simple-dependent-types-in-python-4e14
Now, we are going to combine our new knowledge about Literal and @overload together to solve our problem with open. At last!
[2020-07-08]
SymPy - a Python library for symbolic mathematics | Hacker News [[sympy]] [[sage]]As one point of comparison, SymPy is comically slow compared to Sage. This is mostly because SymPy is purely Python; Sage on the other hand uses a derivative of GiNaC [1] for its internal symbolic expression representation, and then multiple external libraries for non-trivial operations. Symbolic transformations are mostly Maxima [3]. Sage literally converts expressions to strings, pipes them through a Maxima process, and then parses the result back. This is still much faster than the pure Python SymPy.
There is an effort to speed up SymPy core, SymEngine [3], but it's been in development for years now, and still isn't integrated into SymPy. Not sure why.
Case in point: 'expand("(2+3x+4x*y)^60")' takes 5 seconds with SymPy; Sage does the same in 0.02 seconds.
[2020-07-26]
The Qt Console for Jupyter — Jupyter Qt Console 4.7.5 documentationThe Qt console is a very lightweight application that largely feels like a terminal, but provides a number of enhancements only possible in a GUI, such as inline figures, proper multi-line editing with syntax highlighting, graphical calltips, and much more. The Qt console can use any Jupyter kernel.
[2020-10-15]
Frame Hacks [[python]][2019-03-17]
pylint useful stuff [[python]]cell-var-from-loop -- can detect bad lambda capturing
pylint --disable='C,fixme,'
[2020-05-25]
docopt v argparse • Dimitri Merejkowsky [[python]]But for big projects with lots of subcommands, written in Python, using argparse may be a better idea, especially if you need to do advanced stuff for your parsing, like configuring common options in one function, allow plug-ins to change the command line API, and so on …
[2019-12-08]
Dynamically change slots in Python 3 - Stack Overflow [[python]]https://stackoverflow.com/questions/27907373/dynamically-change-slots-in-python-3
Normally, an object's attributes are stored in a dict, which requires a fair bit of memory itself. If you are creating millions of objects then the space required by these dicts becomes prohibitive. __slots__ informs the python machinery that makes the class object that there will only be so many attributes refered to by instances of this class and what the names of the attributes will be. Therefore, the class can make an optimisation by storing the attributes directly on the instance rather than in a dict. It places the memory for the (pointers to the) attributes directly on the object, rather than creating a new dict for the object.
[2020-10-24]
LiveCode is a modern day HyperCard (2019) | Hacker News [[python]] [[gui]]In the spirit of HN contrarian comments, I'd say the closest thing spiritually to a modern-day HyperCard is PySimpleGUI: https://github.com/PySimpleGUI
[2020-01-15]
Show HN: CrossHair – SMT Assisted Testing for Python [[testing]] [[python]]https://github.com/pschanely/CrossHair
[2019-11-10]
lihaoyi/macropy: Macros in Python: quasiquotes, case classes, LINQ and more! [[macro]] [[python]] [[lisp]]https://github.com/lihaoyi/macropy
[2020-05-16]
wow that’s amazing https://macropy3.readthedocs.io/en/latest/discussion.html#function-advice[2020-01-09]
What does it do? — Logbook [[python]] [[logging]]https://logbook.readthedocs.io/en/stable/features.html#advantages-over-logging
[2019-11-24]
How formulas work — patsy 0.5.1+dev documentationhttps://patsy.readthedocs.io/en/latest/formulas.html
The formula language is actually fairly simple once you get the hang of it, but if you’re ever in doubt as to what some construction means, you can always ask Patsy how it expands.
[2019-12-20]
Pipenv: promises a lot, delivers very little | Chris Warrick [[pip]]https://chriswarrick.com/blog/2018/07/17/pipenv-promises-a-lot-delivers-very-little/
[2020-08-19]
installrequires vs requirements files — Python Packaging User Guide [[pip]]Requirements Files described most simply, are just a list of pip install arguments placed into a file.
Whereas install_requires defines the dependencies for a single project, Requirements Files are often used to define the requirements for a complete Python environment.
Whereas install_requires requirements are minimal, requirements files often contain an exhaustive listing of pinned versions for the purpose of achieving repeatable installations of a complete environment.
Whereas install_requires requirements are “Abstract”, i.e. not associated with any particular index, requirements files often contain pip options like --index-url or --find-links to make requirements “Concrete”, i.e. associated with a particular index or directory of packages. 1
Whereas install_requires metadata is automatically analyzed by pip during an install, requirements files are not, and only are used when a user specifically installs them using pip install -r.
[2019-04-10]
kynan/nbstripout: strip output from Jupyter and IPython notebooks [[git]] [[ipython]]https://github.com/kynan/nbstripout
[2020-08-22]
Plotly vs. Bokeh: Interactive Python Visualisation Pros and Cons | Paul Iacomi [[bokeh]] [[viz]]pretty good comparizon
def building_for_pypi() -> bool:
return sys.argv[1] == 'sdist'
for_pypi = building_for_pypi()
'my': [] if for_pypi else ['HPI @ git+https://github.com/karlicoss/my.git'],
},
[2020-03-14]
jestem króliczkiem on Twitter: "or, you can encode dependencies in types: @dataclass(init=False) class FancyPath: path: Path mtime: float def _init_(self, path: Path): self.path = path self.mtime = path.stat().stmtime" / Twitter [[cachew]] [[python]]<https://twitter.com/karlicoss/status/1238791294547353601 >
@dataclass
(init=False)
class FancyPath:
path: Path
mtime: float
def __init__(self, path: Path):
self.path = path
self.mtime = path.stat().st_mtime
right, I suppose it’s type to use dataclasses
[2020-04-11]
Traps for the Unwary in Python’s Import System — Nick Coghlan’s Python Notes 1.0 documentation [[python]][2020-05-13]
amontalenti/elements-of-python-style: Goes beyond PEP8 to discuss what makes Python code feel great. A Strunk & White for Python. [[python]]Use parens (...) for fluent APIs
[2020-05-18]
The Definitive Guide to Python import Statements | Chris Yeh [[python]][2020-08-09]
resize ipython notebook output window - Stack OverflowYou can toggle the scroll window in the main menu of the notebook
Cell -> Current Outputs -> Toggle Scrolling
[2020-01-26]
Not really. Enable something like MyPy or PyType on a big enough codebase with z… | Hacker Newshttps://news.ycombinator.com/item?id=21902827
Not really. Enable something like MyPy or PyType on a big enough codebase with zero explicit annotation and it'll already find plenty of bugs and unhandled cases from the inferred types alone. Some of these are stuff a strong IDE may catch too (using the wrong function name, passing wrong number of args, etc), but some other ones are actually deeper in the code.
So already, with zero annotations, you already get value out, let alone once you type a few tricky variables that are harder for Python to track.
[2020-07-21]
tmbo/questionary: Python library to build pretty command line user prompts ✨Easy to use multi-select lists, confirmations, free text prompts … [[tui]][2020-09-07]
Good Integration Practices — pytest documentationtests in a separate dir vs tests in a subpackage
[2019-07-23]
Python Scatterplot Matrix | Plotly [[viz]][2019-08-18]
box/flaky: Plugin for nose or pytest that automatically reruns flaky tests. [[pytest]][2019-03-05]
ipython -pylab [[ipython]][2018-12-23]
lambdalisue/jupyter-vim-binding: Jupyter meets Vim. Vimmer will fall in love. [[vim]] [[jupyter]]https://github.com/lambdalisue/jupyter-vim-binding
[2019-04-13]
eh, I’m using emacs now…[2019-05-10]
Is SQLAlchemy recommended for a highly transactional, large volume database? /r/PythonYes. I've written a few systems using SQLAlchemy that see 50-100k writes and 200k or so reads per second, and as long as you're using the Core everything works fine. Also allows you to use the ORM for ease-of-development on bits that don't need performance.
SQLAlchemy is probably the one library in which I've never reached the "wait, I need to do something and can't" point. Every single weird edge case I've had to handle has been supported either natively or by being able to access the raw interfaces directly in a clean way. Fantastic library, can't recommend it more highly.
Also, the lead dev is extremely responsive on the google group and is more than happy to answer questions.
[2020-02-16]
Command Line Scripts — Python Packaging Tutorial [[pip]][2020-12-14]
hmm maybe best to use ‘scripts’, seems more manageable[2019-10-18]
Hy - Wikipedia [[lisp]] [[python]]
Rendering context...