Differences between revisions 19 and 26 (spanning 7 versions)
Revision 19 as of 2020-04-29 09:16:51
Size: 3819
Editor: SamatJain
Comment:
Revision 26 as of 2021-04-09 17:46:53
Size: 3906
Editor: SamatJain
Comment: NumPy reorg
Deletions are marked like this. Additions are marked like this.
Line 22: Line 22:
== cffi and numpy ==

https://github.com/SimonSapin/azureblur/tree/master/azureblur: Example of using cffi to interact w/ a C++ class.

[[http://stackoverflow.com/questions/37881503/how-do-i-convert-a-numpy-nd-array-to-a-cffi-c-array-and-back-again|python - How do I convert a numpy ND-array to a CFFI C++ array and back again? - Stack Overflow]]

[[http://stackoverflow.com/questions/23056057/why-is-cffi-so-much-quicker-than-numpy/23058665#23058665|python - Why is cffi so much quicker than numpy? - Stack Overflow]]
Line 41: Line 33:

[[https://github.com/ajalt/fuckitpy|ajalt/fuckitpy]]: Steamrolls through Python errors.
Line 55: Line 49:

https://github.com/ltworf/typedload

[[https://github.com/bogdandm/json2python-models|json2python-models]]: Create dataclasses automatically from JSON files

=== Logging ===

Colored logging:

 * [[https://loguru.readthedocs.io/|loguru]]: Easy Python logging. Used by FlexGet.
 * [[https://rich.readthedocs.io/en/latest/logging.html|rich's logging handler]]: part of rich formatting library

=== Debugging ===

 * [[https://github.com/cknd/stackprinter|stackprinter]]: Debugging friendly stacktrace printing

CodingStyle/Python is another relevant page. Also:

Development packages for Debian

Current for Ubuntu 16.04.

fabric
python-pip
python3-venv
python3-pip
python-wheel-common

Neat Web frameworks

aspen.io. Filesystem-based dispatch library. Used by Liberapay.

Neat packages

nvbn/py-backwards: Python transcompiler. Lets you use Python 3.6 features in older versions, as old as Python 2.7.

asottile/future-fstrings. Allows formatted string literals (AKA f-strings) in Python 2.7–3.5 by hacking built-in codecs.

arrow (relatively mature) and moment, a port of Moment.js, are date-handling libraries with a better API than Python's stdlib.

ajalt/fuckitpy: Steamrolls through Python errors.

JSON

Parsing JSON without pulling your hair out…

glom

dpath

jq

jmespath: used by awscli

jsons: Serialize from and to Python objects, works with dataclasses and typed Python.

https://github.com/ltworf/typedload

json2python-models: Create dataclasses automatically from JSON files

Logging

Colored logging:

Debugging

Compilers

Nuitka: Python native-code compiler, binary will still link to libpython.

Typing

ambv/retype: Re-applies type annotations from *.pyi stubs to a codebase.

For reference:

Porting projects from Python 2 to Python 3

Backports

subprocess

python-subprocess32: Backport of Python 3.2 subprocess module to 2.7. Use:

if os.name == 'posix' and sys.version_info[0] < 3:
    import subprocess32 as subprocess
else:
    import subprocess

Can serve as a complete replacement for Python 2.7's subprocess module.

2to3 libraries

Guides

Notes

Packaging

requirements.txt

PyYAML ~= 5.3  # means >= V.N, == V.*

For more information, see:

SamatsWiki: ProgrammingLanguages/Python (last edited 2021-04-09 17:46:53 by SamatJain)