about summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--pkgs/development/python-modules/adb-enhanced/default.nix9
-rw-r--r--pkgs/development/python-modules/aesedb/default.nix19
-rw-r--r--pkgs/development/python-modules/ailment/default.nix4
-rw-r--r--pkgs/development/python-modules/aioairzone/default.nix4
-rw-r--r--pkgs/development/python-modules/aioconsole/default.nix4
-rw-r--r--pkgs/development/python-modules/aiodiscover/default.nix10
-rw-r--r--pkgs/development/python-modules/aioesphomeapi/default.nix4
-rw-r--r--pkgs/development/python-modules/aiohue/default.nix4
-rw-r--r--pkgs/development/python-modules/aiolifx-themes/default.nix4
-rw-r--r--pkgs/development/python-modules/aiolivisi/default.nix4
-rw-r--r--pkgs/development/python-modules/aiopulse/default.nix5
-rw-r--r--pkgs/development/python-modules/aiopvpc/default.nix4
-rw-r--r--pkgs/development/python-modules/aioslimproto/default.nix5
-rw-r--r--pkgs/development/python-modules/aiosomecomfort/default.nix4
-rw-r--r--pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix4
-rw-r--r--pkgs/development/python-modules/aliyun-python-sdk-sts/default.nix4
-rw-r--r--pkgs/development/python-modules/angr/default.nix4
-rw-r--r--pkgs/development/python-modules/angrop/default.nix23
-rw-r--r--pkgs/development/python-modules/ansible-lint/default.nix4
-rw-r--r--pkgs/development/python-modules/apispec/default.nix6
-rw-r--r--pkgs/development/python-modules/app-model/default.nix12
-rw-r--r--pkgs/development/python-modules/appthreat-vulnerability-db/default.nix4
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--pkgs/development/python-modules/ascii-magic/default.nix24
-rw-r--r--pkgs/development/python-modules/asn1tools/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncwhois/default.nix4
-rw-r--r--pkgs/development/python-modules/auroranoaa/default.nix4
-rw-r--r--pkgs/development/python-modules/autograd-gamma/default.nix29
-rw-r--r--pkgs/development/python-modules/bandit/default.nix4
-rw-r--r--pkgs/development/python-modules/beancount-black/default.nix4
-rw-r--r--pkgs/development/python-modules/bpycv/default.nix4
-rw-r--r--pkgs/development/python-modules/breezy/Cargo.lock311
-rw-r--r--pkgs/development/python-modules/breezy/default.nix91
-rw-r--r--pkgs/development/python-modules/brother/default.nix5
-rw-r--r--pkgs/development/python-modules/bthome-ble/default.nix4
-rw-r--r--pkgs/development/python-modules/caio/default.nix4
-rw-r--r--pkgs/development/python-modules/caldav/default.nix4
-rw-r--r--pkgs/development/python-modules/casbin/default.nix4
-rw-r--r--pkgs/development/python-modules/cemm/default.nix59
-rw-r--r--pkgs/development/python-modules/ciscoconfparse/default.nix4
-rw-r--r--pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--pkgs/development/python-modules/cle/default.nix4
-rw-r--r--pkgs/development/python-modules/cmd2-ext-test/default.nix44
-rw-r--r--pkgs/development/python-modules/crate/default.nix20
-rw-r--r--pkgs/development/python-modules/ctap-keyring-device/default.nix71
-rw-r--r--pkgs/development/python-modules/dash/default.nix20
-rw-r--r--pkgs/development/python-modules/dask-awkward/default.nix60
-rw-r--r--pkgs/development/python-modules/datasets/default.nix4
-rw-r--r--pkgs/development/python-modules/datasette/default.nix4
-rw-r--r--pkgs/development/python-modules/dbus-python-client-gen/default.nix11
-rw-r--r--pkgs/development/python-modules/debugpy/default.nix19
-rw-r--r--pkgs/development/python-modules/debugpy/hardcode-lldb.patch13
-rw-r--r--pkgs/development/python-modules/deid/default.nix74
-rw-r--r--pkgs/development/python-modules/deltachat/default.nix5
-rw-r--r--pkgs/development/python-modules/devolo-plc-api/default.nix4
-rw-r--r--pkgs/development/python-modules/django-ipware/default.nix15
-rw-r--r--pkgs/development/python-modules/dkimpy/default.nix4
-rw-r--r--pkgs/development/python-modules/doorbirdpy/default.nix24
-rw-r--r--pkgs/development/python-modules/drf-spectacular-sidecar/default.nix4
-rw-r--r--pkgs/development/python-modules/dtlssocket/default.nix8
-rw-r--r--pkgs/development/python-modules/dtschema/default.nix52
-rw-r--r--pkgs/development/python-modules/duckdb-engine/default.nix4
-rw-r--r--pkgs/development/python-modules/easyenergy/default.nix61
-rw-r--r--pkgs/development/python-modules/elgato/default.nix6
-rw-r--r--pkgs/development/python-modules/energyzero/default.nix61
-rw-r--r--pkgs/development/python-modules/eradicate/default.nix40
-rw-r--r--pkgs/development/python-modules/eufylife-ble-client/default.nix47
-rw-r--r--pkgs/development/python-modules/evaluate/default.nix75
-rw-r--r--pkgs/development/python-modules/evtx/default.nix6
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix10
-rw-r--r--pkgs/development/python-modules/execnb/default.nix33
-rw-r--r--pkgs/development/python-modules/exrex/default.nix21
-rw-r--r--pkgs/development/python-modules/extractcode/7z.nix2
-rw-r--r--pkgs/development/python-modules/fakeredis/default.nix4
-rw-r--r--pkgs/development/python-modules/fastai/default.nix55
-rw-r--r--pkgs/development/python-modules/fastdownload/default.nix32
-rw-r--r--pkgs/development/python-modules/faust-cchardet/default.nix47
-rw-r--r--pkgs/development/python-modules/fire/default.nix10
-rw-r--r--pkgs/development/python-modules/flask-security-too/default.nix4
-rw-r--r--pkgs/development/python-modules/flipr-api/default.nix7
-rw-r--r--pkgs/development/python-modules/foolscap/default.nix39
-rw-r--r--pkgs/development/python-modules/formulaic/default.nix63
-rw-r--r--pkgs/development/python-modules/fritzconnection/default.nix10
-rw-r--r--pkgs/development/python-modules/garminconnect/default.nix4
-rw-r--r--pkgs/development/python-modules/gbinder-python/default.nix5
-rw-r--r--pkgs/development/python-modules/gcovr/default.nix5
-rw-r--r--pkgs/development/python-modules/ghrepo-stats/default.nix4
-rw-r--r--pkgs/development/python-modules/glcontext/default.nix4
-rw-r--r--pkgs/development/python-modules/goodwe/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-access-context-manager/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-automl/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigtable/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-compute/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-container/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-datastore/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-dlp/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-error-reporting/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-iam/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-iot/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-kms/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-redis/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-resource-manager/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-secret-manager/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-securitycenter/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-spanner/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-speech/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-tasks/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-trace/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-translate/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-videointelligence/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-vision/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix4
-rw-r--r--pkgs/development/python-modules/google-resumable-media/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio/default.nix11
-rw-r--r--pkgs/development/python-modules/gsd/default.nix4
-rw-r--r--pkgs/development/python-modules/guessit/default.nix23
-rw-r--r--pkgs/development/python-modules/hassil/default.nix25
-rw-r--r--pkgs/development/python-modules/hatch-jupyter-builder/default.nix2
-rw-r--r--pkgs/development/python-modules/haversine/default.nix4
-rw-r--r--pkgs/development/python-modules/herepy/default.nix4
-rw-r--r--pkgs/development/python-modules/holidays/default.nix4
-rw-r--r--pkgs/development/python-modules/home-assistant-chip-clusters/default.nix5
-rw-r--r--pkgs/development/python-modules/home-assistant-chip-core/default.nix7
-rw-r--r--pkgs/development/python-modules/homematicip/default.nix4
-rw-r--r--pkgs/development/python-modules/hvac/default.nix9
-rw-r--r--pkgs/development/python-modules/hwi/default.nix6
-rw-r--r--pkgs/development/python-modules/identify/default.nix4
-rw-r--r--pkgs/development/python-modules/iminuit/default.nix4
-rw-r--r--pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix4
-rw-r--r--pkgs/development/python-modules/interface-meta/0001-fix-version.patch36
-rw-r--r--pkgs/development/python-modules/interface-meta/default.nix38
-rw-r--r--pkgs/development/python-modules/ipwhois/default.nix71
-rw-r--r--pkgs/development/python-modules/jaxlib/default.nix2
-rw-r--r--pkgs/development/python-modules/jaxopt/default.nix4
-rw-r--r--pkgs/development/python-modules/jc/default.nix4
-rw-r--r--pkgs/development/python-modules/jenkins-job-builder/default.nix4
-rw-r--r--pkgs/development/python-modules/json-stream-rs-tokenizer/Cargo.lock596
-rw-r--r--pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix63
-rw-r--r--pkgs/development/python-modules/json-stream/default.nix12
-rw-r--r--pkgs/development/python-modules/junos-eznc/default.nix31
-rw-r--r--pkgs/development/python-modules/jupyter-book/default.nix7
-rw-r--r--pkgs/development/python-modules/kaggle/default.nix4
-rw-r--r--pkgs/development/python-modules/klein/default.nix2
-rw-r--r--pkgs/development/python-modules/lcgit/default.nix42
-rw-r--r--pkgs/development/python-modules/libagent/default.nix8
-rw-r--r--pkgs/development/python-modules/libvirt/default.nix4
-rw-r--r--pkgs/development/python-modules/lifelines/default.nix63
-rw-r--r--pkgs/development/python-modules/lineedit/default.nix45
-rw-r--r--pkgs/development/python-modules/lsprotocol/default.nix4
-rw-r--r--pkgs/development/python-modules/mdutils/default.nix6
-rw-r--r--pkgs/development/python-modules/merge3/default.nix35
-rw-r--r--pkgs/development/python-modules/mixins/default.nix25
-rw-r--r--pkgs/development/python-modules/mpv/default.nix3
-rw-r--r--pkgs/development/python-modules/mypy-boto3-builder/default.nix4
-rw-r--r--pkgs/development/python-modules/nbdev/default.nix36
-rw-r--r--pkgs/development/python-modules/nestedtext/default.nix62
-rw-r--r--pkgs/development/python-modules/nettigo-air-monitor/default.nix6
-rw-r--r--pkgs/development/python-modules/nibe/default.nix4
-rw-r--r--pkgs/development/python-modules/nix-prefetch-github/default.nix4
-rw-r--r--pkgs/development/python-modules/nocaselist/default.nix4
-rw-r--r--pkgs/development/python-modules/nuheat/default.nix48
-rw-r--r--pkgs/development/python-modules/nuitka/default.nix5
-rw-r--r--pkgs/development/python-modules/okta/default.nix74
-rw-r--r--pkgs/development/python-modules/openai/default.nix7
-rw-r--r--pkgs/development/python-modules/openaiauth/default.nix32
-rw-r--r--pkgs/development/python-modules/openapi-core/default.nix10
-rw-r--r--pkgs/development/python-modules/openapi-schema-validator/default.nix21
-rw-r--r--pkgs/development/python-modules/openapi-spec-validator/default.nix13
-rw-r--r--pkgs/development/python-modules/ospd/default.nix5
-rw-r--r--pkgs/development/python-modules/parametrize-from-file/default.nix11
-rw-r--r--pkgs/development/python-modules/parsimonious/default.nix8
-rw-r--r--pkgs/development/python-modules/peaqevcore/default.nix4
-rw-r--r--pkgs/development/python-modules/pglast/default.nix4
-rw-r--r--pkgs/development/python-modules/pint-pandas/default.nix29
-rw-r--r--pkgs/development/python-modules/pontos/default.nix4
-rw-r--r--pkgs/development/python-modules/prance/default.nix53
-rw-r--r--pkgs/development/python-modules/psrpcore/default.nix12
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix49
-rw-r--r--pkgs/development/python-modules/pulumi/default.nix2
-rw-r--r--pkgs/development/python-modules/py-dormakaba-dkey/default.nix49
-rw-r--r--pkgs/development/python-modules/py_stringmatching/default.nix35
-rw-r--r--pkgs/development/python-modules/pyairnow/default.nix15
-rw-r--r--pkgs/development/python-modules/pybalboa/default.nix13
-rw-r--r--pkgs/development/python-modules/pybigwig/default.nix50
-rw-r--r--pkgs/development/python-modules/pybravia/default.nix4
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix5
-rw-r--r--pkgs/development/python-modules/pydata-sphinx-theme/default.nix4
-rw-r--r--pkgs/development/python-modules/pydeconz/default.nix4
-rw-r--r--pkgs/development/python-modules/pyexploitdb/default.nix42
-rw-r--r--pkgs/development/python-modules/pyfibaro/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfritzhome/default.nix18
-rw-r--r--pkgs/development/python-modules/pygls/default.nix6
-rw-r--r--pkgs/development/python-modules/pyinsteon/default.nix23
-rw-r--r--pkgs/development/python-modules/pykeyatome/default.nix4
-rw-r--r--pkgs/development/python-modules/pymazda/default.nix4
-rw-r--r--pkgs/development/python-modules/pymorphy3/default.nix41
-rw-r--r--pkgs/development/python-modules/pymorphy3/dicts-ru.nix26
-rw-r--r--pkgs/development/python-modules/pymorphy3/dicts-uk.nix26
-rw-r--r--pkgs/development/python-modules/pymumble/default.nix18
-rw-r--r--pkgs/development/python-modules/pynuki/default.nix4
-rw-r--r--pkgs/development/python-modules/pyobihai/default.nix6
-rw-r--r--pkgs/development/python-modules/pyoverkiz/default.nix4
-rw-r--r--pkgs/development/python-modules/pypykatz/default.nix4
-rw-r--r--pkgs/development/python-modules/pyrogram/default.nix4
-rw-r--r--pkgs/development/python-modules/pysma/default.nix4
-rw-r--r--pkgs/development/python-modules/pysml/default.nix4
-rw-r--r--pkgs/development/python-modules/pysparse/default.nix49
-rw-r--r--pkgs/development/python-modules/pysparse/dropPackageLoader.patch88
-rw-r--r--pkgs/development/python-modules/pytest-md-report/default.nix43
-rw-r--r--pkgs/development/python-modules/pytest-recording/default.nix64
-rw-r--r--pkgs/development/python-modules/python-benedict/default.nix4
-rw-r--r--pkgs/development/python-modules/python-decouple/default.nix6
-rw-r--r--pkgs/development/python-modules/python-matter-server/default.nix4
-rw-r--r--pkgs/development/python-modules/python-mpv-jsonipc/default.nix4
-rw-r--r--pkgs/development/python-modules/python-musicpd/default.nix26
-rw-r--r--pkgs/development/python-modules/python-otbr-api/default.nix53
-rw-r--r--pkgs/development/python-modules/python-rapidjson/default.nix3
-rw-r--r--pkgs/development/python-modules/python-velbus/default.nix20
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvizio/default.nix4
-rw-r--r--pkgs/development/python-modules/qtile-extras/default.nix84
-rw-r--r--pkgs/development/python-modules/qualysclient/default.nix7
-rw-r--r--pkgs/development/python-modules/questionary/default.nix4
-rw-r--r--pkgs/development/python-modules/r2pipe/default.nix4
-rw-r--r--pkgs/development/python-modules/radian/default.nix71
-rw-r--r--pkgs/development/python-modules/rangehttpserver/default.nix17
-rw-r--r--pkgs/development/python-modules/ray/default.nix2
-rw-r--r--pkgs/development/python-modules/rchitect/default.nix52
-rw-r--r--pkgs/development/python-modules/recommonmark/default.nix4
-rw-r--r--pkgs/development/python-modules/reolink-aio/default.nix4
-rw-r--r--pkgs/development/python-modules/rich/default.nix4
-rw-r--r--pkgs/development/python-modules/rns/default.nix4
-rw-r--r--pkgs/development/python-modules/roombapy/default.nix4
-rw-r--r--pkgs/development/python-modules/rpyc/default.nix5
-rw-r--r--pkgs/development/python-modules/s3fs/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-rf/default.nix113
-rw-r--r--pkgs/development/python-modules/scikit-survival/default.nix4
-rw-r--r--pkgs/development/python-modules/scmrepo/default.nix4
-rw-r--r--pkgs/development/python-modules/screenlogicpy/default.nix4
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/setuptools-gettext/default.nix4
-rw-r--r--pkgs/development/python-modules/sip/4.x.nix11
-rw-r--r--pkgs/development/python-modules/slack-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/snapcast/default.nix4
-rw-r--r--pkgs/development/python-modules/snscrape/default.nix8
-rw-r--r--pkgs/development/python-modules/spacy-transformers/annotation-test/annotate.py3
-rw-r--r--pkgs/development/python-modules/spacy-transformers/default.nix4
-rw-r--r--pkgs/development/python-modules/spacy/models.json84
-rw-r--r--pkgs/development/python-modules/spacy/models.nix20
-rw-r--r--pkgs/development/python-modules/sparse/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx-book-theme/default.nix8
-rw-r--r--pkgs/development/python-modules/sphinx-markdown-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxext-opengraph/default.nix11
-rw-r--r--pkgs/development/python-modules/spur/default.nix9
-rw-r--r--pkgs/development/python-modules/sqlmap/default.nix4
-rw-r--r--pkgs/development/python-modules/squarify/default.nix31
-rw-r--r--pkgs/development/python-modules/srsly/default.nix4
-rw-r--r--pkgs/development/python-modules/sunweg/default.nix4
-rw-r--r--pkgs/development/python-modules/swift/default.nix4
-rw-r--r--pkgs/development/python-modules/syrupy/default.nix19
-rw-r--r--pkgs/development/python-modules/systemd/default.nix34
-rw-r--r--pkgs/development/python-modules/tensorflow/bin.nix2
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix52
-rw-r--r--pkgs/development/python-modules/tesserocr/default.nix4
-rw-r--r--pkgs/development/python-modules/textnets/default.nix75
-rw-r--r--pkgs/development/python-modules/textual/default.nix5
-rw-r--r--pkgs/development/python-modules/thinc/default.nix4
-rw-r--r--pkgs/development/python-modules/timeago/default.nix4
-rw-r--r--pkgs/development/python-modules/tls-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/toposort/default.nix4
-rw-r--r--pkgs/development/python-modules/torchmetrics/default.nix4
-rw-r--r--pkgs/development/python-modules/torchvision/default.nix68
-rw-r--r--pkgs/development/python-modules/tplink-omada-client/default.nix5
-rw-r--r--pkgs/development/python-modules/trove-classifiers/default.nix4
-rw-r--r--pkgs/development/python-modules/tweepy/default.nix4
-rw-r--r--pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--pkgs/development/python-modules/twitchapi/default.nix4
-rw-r--r--pkgs/development/python-modules/txi2p-tahoe/default.nix50
-rw-r--r--pkgs/development/python-modules/types-ujson/default.nix28
-rw-r--r--pkgs/development/python-modules/ulid-transform/default.nix51
-rw-r--r--pkgs/development/python-modules/unidiff/default.nix4
-rw-r--r--pkgs/development/python-modules/unrardll/default.nix4
-rw-r--r--pkgs/development/python-modules/unrpa/default.nix18
-rw-r--r--pkgs/development/python-modules/vdirsyncer/default.nix15
-rw-r--r--pkgs/development/python-modules/velbus-aio/default.nix4
-rw-r--r--pkgs/development/python-modules/vertica-python/default.nix4
-rw-r--r--pkgs/development/python-modules/viv-utils/default.nix1
-rw-r--r--pkgs/development/python-modules/voluptuous-serialize/default.nix17
-rw-r--r--pkgs/development/python-modules/vsure/default.nix4
-rw-r--r--pkgs/development/python-modules/vulcan-api/default.nix8
-rw-r--r--pkgs/development/python-modules/websockify/default.nix41
-rw-r--r--pkgs/development/python-modules/weconnect-mqtt/default.nix16
-rw-r--r--pkgs/development/python-modules/weconnect/default.nix7
-rw-r--r--pkgs/development/python-modules/xknx/default.nix4
-rw-r--r--pkgs/development/python-modules/yaramod/default.nix4
-rw-r--r--pkgs/development/python-modules/yattag/default.nix22
-rw-r--r--pkgs/development/python-modules/yolink-api/default.nix17
-rw-r--r--pkgs/development/python-modules/youless-api/default.nix4
-rw-r--r--pkgs/development/python-modules/zeroconf/default.nix4
-rw-r--r--pkgs/development/python-modules/zigpy-znp/default.nix4
-rw-r--r--pkgs/development/python-modules/zwave-js-server-python/default.nix4
304 files changed, 4737 insertions, 1002 deletions
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index 147e5805b8061..20853b133955d 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.40.3";
+  version = "3.41.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    hash = "sha256-phG9DEl4JlrIN3zil0SQRZ+DnktpunK094nxVQ9Cksw=";
+    hash = "sha256-NWdY1ykuF8mYxXPCwaVq6mEkQXHrUmhEy/BXDFYn2V0=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/adb-enhanced/default.nix b/pkgs/development/python-modules/adb-enhanced/default.nix
index 79fc34cc0ecb4..7f6c2d1098019 100644
--- a/pkgs/development/python-modules/adb-enhanced/default.nix
+++ b/pkgs/development/python-modules/adb-enhanced/default.nix
@@ -9,15 +9,16 @@
 
 buildPythonPackage rec {
   pname = "adb-enhanced";
-  version = "2.5.14";
+  version = "2.5.16";
+  format = "setuptools";
 
-  disabled = pythonOlder "3.4";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ashishb";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-GaPOYBQEGI40MutjjY8exABqGge2p/buk9v+NcZ5oJs=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-+CMXKg3LLxEXGcFQ9zSqy/1HPZS9MsQ1fZxClJ0Vrnw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aesedb/default.nix b/pkgs/development/python-modules/aesedb/default.nix
index 63a9987994c90..95e953e1f5a16 100644
--- a/pkgs/development/python-modules/aesedb/default.nix
+++ b/pkgs/development/python-modules/aesedb/default.nix
@@ -2,25 +2,32 @@
 , aiowinreg
 , buildPythonPackage
 , colorama
-, fetchPypi
+, fetchFromGitHub
 , pycryptodomex
 , pythonOlder
+, setuptools
 , tqdm
 , unicrypto
 }:
 
 buildPythonPackage rec {
   pname = "aesedb";
-  version = "0.1.1";
-  format = "setuptools";
+  version = "0.1.3";
+  format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-pnbzPVXr3qgBH7t5wNR+jbTdQGMdnLpV+xfgQjdc+7A=";
+  src = fetchFromGitHub {
+    owner = "skelsec";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    hash = "sha256-TXGRXo3754dEgRotDO5vSl9vj119Xday/176yem3cqk=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiowinreg
     colorama
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index e9efffff97276..0bcd1360e2905 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.2.39";
+  version = "9.2.41";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-JO46r+eNBmMzCaXvpcQU3pnn833ABeMYnFlxh7bTHB8=";
+    hash = "sha256-KXbHD0CsQotHjc/Pbo4/y/uhCvGkbPDGn1BF8A68xBY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aioairzone/default.nix b/pkgs/development/python-modules/aioairzone/default.nix
index 73f77b517a5cb..6a08ba9e814fb 100644
--- a/pkgs/development/python-modules/aioairzone/default.nix
+++ b/pkgs/development/python-modules/aioairzone/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "aioairzone";
-  version = "0.5.2";
+  version = "0.5.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "Noltari";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-x4OtYUJjRDSDd0FzlbMf7syjUIVxKsqgEfRWS1wgvPo=";
+    hash = "sha256-A2jk8gXqKeQ3b2p9/bkPat1NdhUOFdJCZeSFg//D/hA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aioconsole/default.nix b/pkgs/development/python-modules/aioconsole/default.nix
index b5d93fae31b2e..9451bcd92b4c0 100644
--- a/pkgs/development/python-modules/aioconsole/default.nix
+++ b/pkgs/development/python-modules/aioconsole/default.nix
@@ -16,7 +16,7 @@
 # wrapped to be able to find aioconsole and any other packages.
 buildPythonPackage rec {
   pname = "aioconsole";
-  version = "0.6.0";
+  version = "0.6.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "vxgmichel";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-tINfOGJz0v7zPh9ii7PlgzBBCXvEXif1jWLIi27FLYQ=";
+    sha256 = "sha256-XR79o65jZFR9jr9ubw7wdxCWNH8ANMrBDTVpLnetsuU=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/aiodiscover/default.nix b/pkgs/development/python-modules/aiodiscover/default.nix
index b5b46190fee23..044bbf7be6e10 100644
--- a/pkgs/development/python-modules/aiodiscover/default.nix
+++ b/pkgs/development/python-modules/aiodiscover/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aiodiscover";
-  version = "1.4.13";
+  version = "1.4.14";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-tIbLb4Jk3vR1hVcdUPuYJrse7BcfE4Z/dXShs/uBDBo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-AZ6AqobhgMRCrCqtTuCfJjmKZjFlyIIxPqMtHHH9aBA=";
   };
 
   propagatedBuildInputs = [
@@ -35,8 +35,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace '"pytest-runner>=5.2",' "" \
-      --replace "pyroute2>=0.5.18,!=0.6.1" "pyroute2"
+      --replace '"pytest-runner>=5.2",' ""
   '';
 
   nativeCheckInputs = [
@@ -56,6 +55,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module to discover hosts via ARP and PTR lookup";
     homepage = "https://github.com/bdraco/aiodiscover";
+    changelog = "https://github.com/bdraco/aiodiscover/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/aioesphomeapi/default.nix b/pkgs/development/python-modules/aioesphomeapi/default.nix
index 7d8bdd5d3a3b8..866d597ae8b5c 100644
--- a/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "13.4.1";
+  version = "13.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "esphome";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-J0nhHJQkmcAPpkNRfyFyhJun54J3g18js47dSS3pvas=";
+    hash = "sha256-e0gkjri3PknwY2Si6vJV8S2LNZI/0EBDC7mliI33aTU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aiohue/default.nix b/pkgs/development/python-modules/aiohue/default.nix
index f4248a27ddde2..efd590e7e827e 100644
--- a/pkgs/development/python-modules/aiohue/default.nix
+++ b/pkgs/development/python-modules/aiohue/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "aiohue";
-  version = "4.6.1";
+  version = "4.6.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-ATM4s2W1Gw98TysfqHVA/McerZStHaUK5eMrSU9+uOI=";
+    hash = "sha256-DzslGfKwsXXWWhbTb0apJCsnNdnUe7AbvrRT8ZnPbVU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aiolifx-themes/default.nix b/pkgs/development/python-modules/aiolifx-themes/default.nix
index 5f6612e409afb..cf3b8847c62ca 100644
--- a/pkgs/development/python-modules/aiolifx-themes/default.nix
+++ b/pkgs/development/python-modules/aiolifx-themes/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aiolifx-themes";
-  version = "0.4.1";
+  version = "0.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Djelibeybi";
     repo = "aiolifx-themes";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ND+0jukCU3jB34Sf4qAZg/+pyXVCoIoMqOoBW7srCSQ=";
+    hash = "sha256-6bbhjmtgGEifYmtgXrnsCF36oU+jJDmHMPPEO5a7AKQ=";
   };
 
   prePatch = ''
diff --git a/pkgs/development/python-modules/aiolivisi/default.nix b/pkgs/development/python-modules/aiolivisi/default.nix
index 1f0c21a208f9b..f5a24b0a6c8ad 100644
--- a/pkgs/development/python-modules/aiolivisi/default.nix
+++ b/pkgs/development/python-modules/aiolivisi/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "aiolivisi";
-  version = "0.0.16";
+  version = "0.0.18";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-L7KeTdC3IPbXBLDkP86CyQ59s2bL4byxgKhl8YCmZHQ=";
+    hash = "sha256-8Cy2hhYrUBRfVb2hgil6Irk+iTJmJ8JL+5wvm4rm7kM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiopulse/default.nix b/pkgs/development/python-modules/aiopulse/default.nix
index c2d4add41daca..772dca158336a 100644
--- a/pkgs/development/python-modules/aiopulse/default.nix
+++ b/pkgs/development/python-modules/aiopulse/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "aiopulse";
-  version = "0.4.3";
+  version = "0.4.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Wp8NUjRlO+6ASqIt3C0YJRh0EKcEukXVMp4I+TCTElo=";
+    sha256 = "sha256-JbdJbkzd55KeM3Sf1ExvMuHRKNu5VAvGG4y+wkMS0Wo=";
   };
 
   propagatedBuildInputs = [
@@ -37,6 +37,7 @@ buildPythonPackage rec {
       binary protocol to issues commands to the Pulse Hub.
     '';
     homepage = "https://github.com/atmurray/aiopulse";
+    changelog = "https://github.com/atmurray/aiopulse/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/aiopvpc/default.nix b/pkgs/development/python-modules/aiopvpc/default.nix
index 0f44a49a3979b..14f3a83481d5b 100644
--- a/pkgs/development/python-modules/aiopvpc/default.nix
+++ b/pkgs/development/python-modules/aiopvpc/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aiopvpc";
-  version = "4.0.1";
+  version = "4.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "azogue";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-E5z74/5VuFuOyAfeT4PQlHUNOiVT4sPgOdxoAIIymxU=";
+    hash = "sha256-ixHLFVPlDZKQkPMrOt8PG5z+e84UlygQutkyS8wCZR4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aioslimproto/default.nix b/pkgs/development/python-modules/aioslimproto/default.nix
index 59dca9a34670b..c790d12b1bfa5 100644
--- a/pkgs/development/python-modules/aioslimproto/default.nix
+++ b/pkgs/development/python-modules/aioslimproto/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "aioslimproto";
-  version = "2.1.1";
+  version = "2.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Er7UsJDBDXD8CQSkUIOeO78HQaCsrRycU18LOjBpv/w=";
+    hash = "sha256-3aLAAUaoGkdzjUHFb6aiyVv0fzO8DojN0Y3DTf6h2Ow=";
   };
 
   nativeCheckInputs = [
@@ -35,6 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Module to control Squeezebox players";
     homepage = "https://github.com/home-assistant-libs/aioslimproto";
+    changelog = "https://github.com/home-assistant-libs/aioslimproto/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/aiosomecomfort/default.nix b/pkgs/development/python-modules/aiosomecomfort/default.nix
index 6026db49d5873..e9047034c8c5c 100644
--- a/pkgs/development/python-modules/aiosomecomfort/default.nix
+++ b/pkgs/development/python-modules/aiosomecomfort/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "aiosomecomfort";
-  version = "0.0.10";
+  version = "0.0.14";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "mkmer";
     repo = "AIOSomecomfort";
     rev = "refs/tags/${version}";
-    hash = "sha256-w9rD/8fb9CoN9esHY0UEjIs98i9OGp+suiz6I5Uj3ok=";
+    hash = "sha256-YVZSqTynlAH7y6vH07wsFCLMWnde/cBx4jjfJ4ZV3LA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix b/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix
index 06c56116de4e6..5fb603a227882 100644
--- a/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix
+++ b/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "aliyun-python-sdk-iot";
-  version = "8.50.0";
+  version = "8.52.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tFI6iPvKWp69PKvkBrMQrkMZD03VHhLIIDy0VI5XLEA=";
+    hash = "sha256-ztuOTjWBlmTS9IvHqNW+mBi1AT0YW3RjwCZTwEcddpE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aliyun-python-sdk-sts/default.nix b/pkgs/development/python-modules/aliyun-python-sdk-sts/default.nix
index 297d347b9f061..cbfbe7c27ffa9 100644
--- a/pkgs/development/python-modules/aliyun-python-sdk-sts/default.nix
+++ b/pkgs/development/python-modules/aliyun-python-sdk-sts/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "aliyun-python-sdk-sts";
-  version = "3.1.0";
+  version = "3.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CpUMw2qdY+5a99WgFLp0p00kQVnuvf3yMOZqTztqnRA=";
+    hash = "sha256-1pCgIw2Glc5Fyp/eoJJXew80SJz7VDcg9vvUpeZpBYk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
index 94b291fcb3fbb..9997ab09fd403 100644
--- a/pkgs/development/python-modules/angr/default.nix
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -31,7 +31,7 @@
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.2.39";
+  version = "9.2.41";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-De8np0Q+/JeWYAVmT7DtMOTOsdSh8DddTeNTBOl1KXk=";
+    hash = "sha256-HikfqU2k7w/IO51vOKNzCLWd+MphG1hXkJal5usQZOA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/angrop/default.nix b/pkgs/development/python-modules/angrop/default.nix
index eb8c6706b5d55..69b06e58784d4 100644
--- a/pkgs/development/python-modules/angrop/default.nix
+++ b/pkgs/development/python-modules/angrop/default.nix
@@ -2,16 +2,15 @@
 , angr
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , progressbar
 , pythonOlder
-, pythonRelaxDepsHook
+, setuptools
 , tqdm
 }:
 
 buildPythonPackage rec {
   pname = "angrop";
-  version = "9.2.7";
+  version = "9.2.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -19,20 +18,12 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-wIPk7Cz7FSPviPFBSLrBjLr9M0o3pyoJM7wiAhHrg9Q=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-zmWdGbFzwLDP7MUqEprZcIgA7lAdCrafWYohAehJyh0=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "compatibility-with-newer-angr.patch";
-      url = "https://github.com/angr/angrop/commit/23194ee4ecdcb7a7390ec04eb133786ec3f807b1.patch";
-      hash = "sha256-n9/oPUblUHSk81qwU129rnNOjsNViaegp6454CaDo+8=";
-    })
-  ];
-
   nativeBuildInputs = [
-    pythonRelaxDepsHook
+    setuptools
   ];
 
   propagatedBuildInputs = [
@@ -41,10 +32,6 @@ buildPythonPackage rec {
     tqdm
   ];
 
-  pythonRelaxDeps = [
-    "angr"
-  ];
-
   # Tests have additional requirements, e.g., angr binaries
   # cle is executing the tests with the angr binaries already and is a requirement of angr
   doCheck = false;
diff --git a/pkgs/development/python-modules/ansible-lint/default.nix b/pkgs/development/python-modules/ansible-lint/default.nix
index 1b61ab6afc4a6..c556b8dabe5fc 100644
--- a/pkgs/development/python-modules/ansible-lint/default.nix
+++ b/pkgs/development/python-modules/ansible-lint/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "ansible-lint";
-  version = "6.13.1";
+  version = "6.14.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Q1wStP2I2oFa9oIfO/iwTrtlGBHaiaEcnRkLr/Ibrao=";
+    hash = "sha256-3ofvEEMCwsb8tDeYp1xC1PClwH6IfCodB6C1qft3TeA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/apispec/default.nix b/pkgs/development/python-modules/apispec/default.nix
index d7fc0929ec439..e24e6c9279d99 100644
--- a/pkgs/development/python-modules/apispec/default.nix
+++ b/pkgs/development/python-modules/apispec/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "apispec";
-  version = "6.0.2";
+  version = "6.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-522Atznt70viEwkqY4Stf9kzun1k9tWgr/jU2hvveIc=";
+    hash = "sha256-GpSaYLtMQr7leqr11DwYTfPi6W2WWORC513UQ1z2CWE=";
   };
 
   propagatedBuildInputs = [
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     validation = [
       openapi-spec-validator
       prance
-    ];
+    ] ++ prance.optional-dependencies.osv;
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/app-model/default.nix b/pkgs/development/python-modules/app-model/default.nix
index 2ada38bfb14e3..1191be3c823d8 100644
--- a/pkgs/development/python-modules/app-model/default.nix
+++ b/pkgs/development/python-modules/app-model/default.nix
@@ -7,13 +7,13 @@
 , pytestCheckHook
 , pythonOlder
 , typing-extensions
-, setuptools-scm
-, setuptools
+, hatch-vcs
+, hatchling
 }:
 
 buildPythonPackage rec {
   pname = "app-model";
-  version = "0.1.1";
+  version = "0.1.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,14 +22,14 @@ buildPythonPackage rec {
     owner = "pyapp-kit";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-nZnIb2QHfpkPirjQPiBdLd7pc1NNn97fdjGxKs0lWQU=";
+    hash = "sha256-W1DL6HkqXkfVE9SPD0cUhPln5FBW5vPICpbQulRhaWs=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   nativeBuildInputs = [
-    setuptools
-    setuptools-scm
+    hatch-vcs
+    hatchling
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
index 3fbd115edd4fc..60a6f2872fe92 100644
--- a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
+++ b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "appthreat-vulnerability-db";
-  version = "4.3.1";
+  version = "5.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "AppThreat";
     repo = "vulnerability-db";
     rev = "refs/tags/v${version}";
-    hash = "sha256-HZHHSY8a7xyJZAQLFeZ+5+CKixcquJcUkkjJTllFiyk=";
+    hash = "sha256-u5gI5agNm1RT0FzsdQaqivKwiY5k7G/mtlSWCNP4V10=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index 7886230e0625a..9042269a465c8 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.2.39";
+  version = "9.2.41";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-vmavJwt8YPpG0xW15lzX1gvuOiViWazqHUDiImlZGPo=";
+    hash = "sha256-O2Tj5rwev5tWnaHq/GJV5/9fAlk5np7S3Yw+ehmofks=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ascii-magic/default.nix b/pkgs/development/python-modules/ascii-magic/default.nix
index d509e0ef46241..0c876d756ebef 100644
--- a/pkgs/development/python-modules/ascii-magic/default.nix
+++ b/pkgs/development/python-modules/ascii-magic/default.nix
@@ -3,12 +3,13 @@
 , colorama
 , fetchPypi
 , pillow
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "ascii-magic";
-  version = "2.1.1";
+  version = "2.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "ascii_magic";
     inherit version;
-    hash = "sha256-YfGa+3nuqAAo69TydxO6uKNMcqZAkOEi/PMP8Frasfw=";
+    hash = "sha256-PtQaHLFn3u1cz8YotmnzWjoD9nvdctzBi+X/2KJkPYU=";
   };
 
   propagatedBuildInputs = [
@@ -24,14 +25,27 @@ buildPythonPackage rec {
     pillow
   ];
 
-  # Project is not tagging releases and tests are not shipped with PyPI source
-  # https://github.com/LeandroBarone/python-ascii_magic/issues/10
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [
     "ascii_magic"
   ];
 
+  preCheck = ''
+    cd tests
+  '';
+
+  disabledTests = [
+    # Test requires network access
+    "test_from_url"
+    "test_quick_test"
+    "test_wrong_url"
+    # No clipboard in the sandbox
+    "test_from_clipboard"
+  ];
+
   meta = with lib; {
     description = "Python module to converts pictures into ASCII art";
     homepage = "https://github.com/LeandroBarone/python-ascii_magic";
diff --git a/pkgs/development/python-modules/asn1tools/default.nix b/pkgs/development/python-modules/asn1tools/default.nix
index d9747450a3361..9bda0a9e6638f 100644
--- a/pkgs/development/python-modules/asn1tools/default.nix
+++ b/pkgs/development/python-modules/asn1tools/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "asn1tools";
-  version = "0.165.0";
+  version = "0.166.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "eerimoq";
     repo = "asn1tools";
     rev = version;
-    hash = "sha256-E9ns4xBDHkmIET2rXsMP9/9knXZ9H0D24w5QISQrYlc=";
+    hash = "sha256-TWAOML6nsLX3TYqoQ9fcSjrUmC4byXOfczfkmSaSa0k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/asyncwhois/default.nix b/pkgs/development/python-modules/asyncwhois/default.nix
index 4d9ed2cccdef9..6f9d5a5eac004 100644
--- a/pkgs/development/python-modules/asyncwhois/default.nix
+++ b/pkgs/development/python-modules/asyncwhois/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "asyncwhois";
-  version = "1.0.2";
+  version = "1.0.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pogzyb";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-MYK09kszv7CTvZjdA9YQFfhlJ/A5d/aebLRaiMlnuB0=";
+    hash = "sha256-ygpmm0CF+L871CpHZEmzdJQvin1uYZMb7kkilrom1YU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/auroranoaa/default.nix b/pkgs/development/python-modules/auroranoaa/default.nix
index 5d3fe1ff15dda..d9162d704b3ad 100644
--- a/pkgs/development/python-modules/auroranoaa/default.nix
+++ b/pkgs/development/python-modules/auroranoaa/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "auroranoaa";
-  version = "0.0.2";
+  version = "0.0.3";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "djtimca";
     repo = "aurora-api";
     rev = version;
-    sha256 = "0bh8amixkg3xigwh3ryra22x6kzhbdassmf1iqv20lhbvzmsqjv0";
+    sha256 = "sha256-ho0O5aEHCKaTuWh2eW2kY5a7dVGIGBLm4nKxAMq0bZ4=";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/autograd-gamma/default.nix b/pkgs/development/python-modules/autograd-gamma/default.nix
new file mode 100644
index 0000000000000..bbb5683e0cee8
--- /dev/null
+++ b/pkgs/development/python-modules/autograd-gamma/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, autograd, scipy }:
+
+buildPythonPackage rec {
+  pname = "autograd-gamma";
+  version = "0.4.3";
+
+  src = fetchFromGitHub {
+    owner = "CamDavidsonPilon";
+    repo = "autograd-gamma";
+    rev = "v${version}";
+    sha256 = "0v03gly5k3a1hzb54zpw6409m3riak49qd27hkq2f66ai42ivqz2";
+  };
+
+  propagatedBuildInputs = [
+    autograd
+    scipy
+  ];
+
+  pythonImportsCheck = [ "autograd_gamma" ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = {
+    homepage = "https://github.com/CamDavidsonPilon/autograd-gamma";
+    description = "Autograd compatible approximations to the gamma family of functions";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ swflint ];
+  };
+}
diff --git a/pkgs/development/python-modules/bandit/default.nix b/pkgs/development/python-modules/bandit/default.nix
index 73de9a4688d07..79c19ba765b2d 100644
--- a/pkgs/development/python-modules/bandit/default.nix
+++ b/pkgs/development/python-modules/bandit/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "bandit";
-  version = "1.7.4";
+  version = "1.7.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LWOoxXNBe64ziWLUubBvvGCA907NlVoJKEnh5lxxe9I=";
+    hash = "sha256-vfxzm6oDuIDC0V0EMbMcZY/8NI6Qf+GX5U4Did1Z4R4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/beancount-black/default.nix b/pkgs/development/python-modules/beancount-black/default.nix
index eb082f5b9537d..014b01439f20a 100644
--- a/pkgs/development/python-modules/beancount-black/default.nix
+++ b/pkgs/development/python-modules/beancount-black/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "beancount-black";
-  version = "0.1.13";
+  version = "0.2.0";
 
   disabled = pythonOlder "3.9";
   format = "pyproject";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "LaunchPlatform";
     repo = "beancount-black";
     rev = version;
-    sha256 = "sha256-jhcPR+5+e8d9cbcXC//xuBwmZ14xtXNlYtmH5yNSU0E=";
+    hash = "sha256-1n+IADiGUsi69XoxO4Tjio2QdkJyoYZHgvYc646TuF4=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/bpycv/default.nix b/pkgs/development/python-modules/bpycv/default.nix
index 5052cf2eb173c..90931af254578 100644
--- a/pkgs/development/python-modules/bpycv/default.nix
+++ b/pkgs/development/python-modules/bpycv/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "bpycv";
-  version = "0.2.43";
+  version = "0.3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-6LXhKuNkX3yKeZARLXmOVNAUQhJghtzKhnszJ1G/a8U=";
+    sha256 = "sha256-4N4rCVhbfJx7H7jS88QR3EcRupISIhnLuZ+cgfwIzg4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/breezy/Cargo.lock b/pkgs/development/python-modules/breezy/Cargo.lock
new file mode 100644
index 0000000000000..7333bfe40f312
--- /dev/null
+++ b/pkgs/development/python-modules/breezy/Cargo.lock
@@ -0,0 +1,311 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "breezy"
+version = "3.3.2"
+dependencies = [
+ "pyo3",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "indoc"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
+dependencies = [
+ "indoc-impl",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "indoc-impl"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "unindent",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+
+[[package]]
+name = "lock_api"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "once_cell"
+version = "1.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+
+[[package]]
+name = "parking_lot"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+dependencies = [
+ "instant",
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+dependencies = [
+ "cfg-if",
+ "instant",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "winapi",
+]
+
+[[package]]
+name = "paste"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
+dependencies = [
+ "paste-impl",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "paste-impl"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
+dependencies = [
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.51"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "pyo3"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d41d50a7271e08c7c8a54cd24af5d62f73ee3a6f6a314215281ebdec421d5752"
+dependencies = [
+ "cfg-if",
+ "indoc",
+ "libc",
+ "parking_lot",
+ "paste",
+ "pyo3-build-config",
+ "pyo3-macros",
+ "unindent",
+]
+
+[[package]]
+name = "pyo3-build-config"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "779239fc40b8e18bc8416d3a37d280ca9b9fb04bda54b98037bb6748595c2410"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "pyo3-macros"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b247e8c664be87998d8628e86f282c25066165f1f8dda66100c48202fdb93a"
+dependencies = [
+ "pyo3-macros-backend",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pyo3-macros-backend"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a8c2812c412e00e641d99eeb79dd478317d981d938aa60325dfa7157b607095"
+dependencies = [
+ "proc-macro2",
+ "pyo3-build-config",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "regex"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+
+[[package]]
+name = "rio-py"
+version = "3.3.2"
+dependencies = [
+ "lazy_static",
+ "pyo3",
+ "regex",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+
+[[package]]
+name = "unindent"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/pkgs/development/python-modules/breezy/default.nix b/pkgs/development/python-modules/breezy/default.nix
index c8104f1b23767..6d27908dd84f1 100644
--- a/pkgs/development/python-modules/breezy/default.nix
+++ b/pkgs/development/python-modules/breezy/default.nix
@@ -1,57 +1,122 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , configobj
-, patiencediff
+, cython
+, dulwich
 , fastbencode
 , fastimport
-, dulwich
+, libiconv
+, merge3
+, patiencediff
+, pyyaml
+, urllib3
+, breezy
 , launchpadlib
 , testtools
 , pythonOlder
 , installShellFiles
+, rustPlatform
+, setuptools-gettext
+, setuptools-rust
+, testers
 }:
 
 buildPythonPackage rec {
   pname = "breezy";
-  version = "3.2.2";
+  version = "3.3.2";
+  format = "pyproject";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-GHpuRSCN0F2BdQc2cgyDcQz0gJT1R+xAgcVxJZVZpNU=";
+    sha256 = "sha256-TqaUn8uwdrl4VFsJn6xoq6011voYmd7vT2uCo9uiV8E=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
   };
 
-  nativeBuildInputs = [ installShellFiles ];
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  cargoHash = "sha256-xYZh/evNp036/wRlNWWUYeD2EkleM+OeY4qbYMCE00I=";
+
+  nativeBuildInputs = [
+    cython
+    installShellFiles
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.cargo
+    rustPlatform.rust.rustc
+    setuptools-gettext
+    setuptools-rust
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   propagatedBuildInputs = [
     configobj
+    dulwich
     fastbencode
+    merge3
     patiencediff
-    fastimport
-    dulwich
-    launchpadlib
-  ];
+    pyyaml
+    urllib3
+  ] ++ passthru.optional-dependencies.launchpad
+    ++ passthru.optional-dependencies.fastimport;
 
-  nativeCheckInputs = [ testtools ];
+  nativeCheckInputs = [
+    testtools
+  ];
 
-  # There is a conflict with their `lazy_import` and plugin tests
+  # multiple failures on sandbox
   doCheck = false;
 
-  # symlink for bazaar compatibility
+  checkPhase = ''
+    runHook preCheck
+
+    HOME=$TMPDIR $out/bin/brz --no-plugins selftest
+
+    runHook postCheck
+  '';
+
   postInstall = ''
+    wrapProgram $out/bin/brz --prefix PYTHONPATH : "$PYTHONPATH"
+
+    # symlink for bazaar compatibility
     ln -s "$out/bin/brz" "$out/bin/bzr"
 
     installShellCompletion --cmd brz --bash contrib/bash/brz
   '';
 
-  pythonImportsCheck = [ "breezy" ];
+  pythonImportsCheck = [
+    "breezy"
+    "breezy.bzr.rio"
+  ];
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = breezy;
+      command = "HOME=$TMPDIR brz --version";
+    };
+    optional-dependencies = {
+      launchpad = [
+        launchpadlib
+      ];
+      fastimport = [
+        fastimport
+      ];
+    };
+  };
 
   meta = with lib; {
     description = "Friendly distributed version control system";
     homepage = "https://www.breezy-vcs.org/";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "brz";
   };
 }
diff --git a/pkgs/development/python-modules/brother/default.nix b/pkgs/development/python-modules/brother/default.nix
index 55dc7fd2202b9..71e8f9d29dd1f 100644
--- a/pkgs/development/python-modules/brother/default.nix
+++ b/pkgs/development/python-modules/brother/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "brother";
-  version = "2.1.1";
+  version = "2.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "bieniu";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-jMvbZ4/NOA3dnJUdDWk2KTRz1gBOC+oDE0ChGNdFl1o=";
+    hash = "sha256-bp4YerSTTsuWX3Yc+btlhwCNZO3eDxRgKNzLZFJbKV0=";
   };
 
   propagatedBuildInputs = [
@@ -41,6 +41,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python wrapper for getting data from Brother laser and inkjet printers via SNMP";
     homepage = "https://github.com/bieniu/brother";
+    changelog = "https://github.com/bieniu/brother/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ hexa ];
   };
diff --git a/pkgs/development/python-modules/bthome-ble/default.nix b/pkgs/development/python-modules/bthome-ble/default.nix
index c3f6a9766dab1..fd4ea9a6fde6d 100644
--- a/pkgs/development/python-modules/bthome-ble/default.nix
+++ b/pkgs/development/python-modules/bthome-ble/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "bthome-ble";
-  version = "2.7.0";
+  version = "2.8.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-wt/TA8bymjYgYSb63Viqf6ToUE1ffa2a3SEVFuTHh94=";
+    hash = "sha256-SdYS/S3wBmIl/f+0H67PcMRX7GiJqAkysvlENshB1yY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/caio/default.nix b/pkgs/development/python-modules/caio/default.nix
index a7dcab5cacd4d..0e1bf5b4c2f42 100644
--- a/pkgs/development/python-modules/caio/default.nix
+++ b/pkgs/development/python-modules/caio/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "caio";
-  version = "0.9.11";
+  version = "0.9.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "mosquito";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-BFlpjbC2yxwGtCAMfn1VM5zmioyN5fFNMJDDWceB+LE=";
+    hash = "sha256-uMq/3yWP9OwaVxixGAFCLMsDPoJhmIuG0I7hO7AnIOk=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/caldav/default.nix b/pkgs/development/python-modules/caldav/default.nix
index b451f4da0c297..e67344270abe4 100644
--- a/pkgs/development/python-modules/caldav/default.nix
+++ b/pkgs/development/python-modules/caldav/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "caldav";
-  version = "1.2.0";
+  version = "1.2.1";
 
   format = "setuptools";
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "python-caldav";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ibizwN4pxqzmVozVjrAPNSrmM1+8+/Qu6UnfRerrwUk=";
+    hash = "sha256-nA7if28M4rDZwlF+ga/1FqD838zeu0OblrPUer3w3qM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 29feab25abef3..5bfde7f67b1c5 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "1.17.6";
+  version = "1.18.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "pycasbin";
     rev = "refs/tags/v${version}";
-    hash = "sha256-917JTjNKvO/Gp9qvvd0Dd5Zjl+AQzUw8PfbH2MQ14Dg=";
+    hash = "sha256-NB8WJJ/cZF4fbgWtU7wM0IplJ98K195Q0WcQ632Ha6U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cemm/default.nix b/pkgs/development/python-modules/cemm/default.nix
new file mode 100644
index 0000000000000..3036393344c93
--- /dev/null
+++ b/pkgs/development/python-modules/cemm/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "cemm";
+  version = "0.5.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "klaasnicolaas";
+    repo = "python-cemm";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-BorgGHxoEeIGyJKqe9mFRDpcGHhi6/8IV7ubEI8yQE4=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace '"0.0.0"' '"${version}"' \
+      --replace 'addopts = "--cov"' ""
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  nativeCheckInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "cemm"
+  ];
+
+  meta = with lib; {
+    description = "Module for interacting with CEMM devices";
+    homepage = "https://github.com/klaasnicolaas/python-cemm";
+    changelog = "https://github.com/klaasnicolaas/python-cemm/releases/tag/v${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/ciscoconfparse/default.nix b/pkgs/development/python-modules/ciscoconfparse/default.nix
index 52cd1a8cf28a7..803cfb7b6fa08 100644
--- a/pkgs/development/python-modules/ciscoconfparse/default.nix
+++ b/pkgs/development/python-modules/ciscoconfparse/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "ciscoconfparse";
-  version = "1.7.15";
+  version = "1.7.18";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "mpenning";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-oGvwtaIgVvvW8Oq/dZN+Zj/PESpqWALFYPia9yeilco=";
+    hash = "sha256-jWInSqvMuwYJTPqHnrYWhMH/HvaQc2dFRqQu4RGFr28=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index be39e1d8d753f..6f90b5b51ea6e 100644
--- a/pkgs/development/python-modules/claripy/default.nix
+++ b/pkgs/development/python-modules/claripy/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.2.39";
+  version = "9.2.41";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Qr/wyaa5vDWd/0TEn9utdeaq6SINtopd49LuQddECvw=";
+    hash = "sha256-FX73LF8T6FaQNqN7EB1SCRAGZsChkEduNL2i8ATQuOE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
index 913ddbf282ec5..b9712c2a82718 100644
--- a/pkgs/development/python-modules/cle/default.nix
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -16,7 +16,7 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.2.39";
+  version = "9.2.41";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-RwcVh2lmY5l4mbd4GG0C0PH+u4NDuTkGJRgyAVgpFMM=";
+    hash = "sha256-v87ma0svBpVfx2SVLw8dx7HdOLQpNzjRwVj9yQs0bR8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cmd2-ext-test/default.nix b/pkgs/development/python-modules/cmd2-ext-test/default.nix
new file mode 100644
index 0000000000000..4cdf9ccf8dcd8
--- /dev/null
+++ b/pkgs/development/python-modules/cmd2-ext-test/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, cmd2
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "cmd2-ext-test";
+  version = "2.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-uTc+onurLilwQe0trESR3JGa5WFT1fCt3rRA7rhRpaY=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    cmd2
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "cmd2_ext_test"
+  ];
+
+  meta = with lib; {
+    description = "Plugin supports testing of a cmd2 application";
+    homepage = "https://github.com/python-cmd2/cmd2/tree/master/plugins/ext_test";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/crate/default.nix b/pkgs/development/python-modules/crate/default.nix
index 5ba9a0f7695a5..4da552db399b6 100644
--- a/pkgs/development/python-modules/crate/default.nix
+++ b/pkgs/development/python-modules/crate/default.nix
@@ -3,7 +3,7 @@
 , buildPythonPackage
 , urllib3
 , geojson
-, isPy3k
+, pythonOlder
 , sqlalchemy
 , pytestCheckHook
 , pytz
@@ -12,12 +12,14 @@
 
 buildPythonPackage rec {
   pname = "crate";
-  version = "0.29.0";
-  disabled = !isPy3k;
+  version = "0.30.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-SywW/b4DnVeSzzRiHbDaKTjcuwDnkwrK6vFfaQVIZhQ=";
+    hash = "sha256-8xraDCFZbpJZsh3sO5VlSHwnEfH4u4AJZkXA+L4TB60=";
   };
 
   propagatedBuildInputs = [
@@ -32,8 +34,15 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # network access
+    # the following tests require network access
     "test_layer_from_uri"
+    "test_additional_settings"
+    "test_basic"
+    "test_cluster"
+    "test_default_settings"
+    "test_dynamic_http_port"
+    "test_environment_variables"
+    "test_verbosity"
   ];
 
   disabledTestPaths = [
@@ -44,6 +53,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/crate/crate-python";
     description = "A Python client library for CrateDB";
+    changelog = "https://github.com/crate/crate-python/blob/${version}/CHANGES.txt";
     license = licenses.asl20;
     maintainers = with maintainers; [ doronbehar ];
   };
diff --git a/pkgs/development/python-modules/ctap-keyring-device/default.nix b/pkgs/development/python-modules/ctap-keyring-device/default.nix
new file mode 100644
index 0000000000000..6406440aa9632
--- /dev/null
+++ b/pkgs/development/python-modules/ctap-keyring-device/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonRelaxDepsHook
+, setuptools-scm
+# install requirements
+, fido2
+, keyring
+, cryptography
+# test requirements
+, pytestCheckHook
+}:
+
+let
+  fido2_0 = fido2.overridePythonAttrs (oldAttrs: rec {
+    version = "0.9.3";
+    src = fetchPypi {
+      inherit (oldAttrs) pname;
+      inherit version;
+      hash = "sha256-tF6JphCc/Lfxu1E3dqotZAjpXEgi+DolORi5RAg0Zuw=";
+    };
+  });
+in
+buildPythonPackage rec {
+  pname = "ctap-keyring-device";
+  version = "1.0.6";
+
+  src = fetchPypi {
+    inherit version pname;
+    sha256 = "sha256-pEJkuz0wxKt2PkowmLE2YC+HPYa2ZiENK7FAW14Ec/Y=";
+  };
+
+  # removing optional dependency needing pyobjc
+  postPatch = ''
+    substituteInPlace pytest.ini \
+      --replace "--flake8 --black --cov" ""
+  '';
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools-scm
+  ];
+
+  pythonRemoveDeps = [
+    # This is a darwin requirement missing pyobjc
+    "pyobjc-framework-LocalAuthentication"
+  ];
+
+  propagatedBuildInputs = [
+    keyring
+    fido2_0
+    cryptography
+  ];
+
+  pythonImportsCheck = [ "ctap_keyring_device" ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    # Disabled tests that needs pyobjc or windows
+    "touch_id_ctap_user_verifier"
+    "windows_hello_ctap_user_verifier"
+  ];
+
+  meta = with lib; {
+    description = "CTAP (client-to-authenticator-protocol) device backed by python's keyring library";
+    homepage = "https://github.com/dany74q/ctap-keyring-device";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dennajort ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix
index 5140a0a6cbc6b..4968c5b28f8b4 100644
--- a/pkgs/development/python-modules/dash/default.nix
+++ b/pkgs/development/python-modules/dash/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "dash";
-  version = "2.7.0";
+  version = "2.8.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -30,16 +30,16 @@ buildPythonPackage rec {
     owner = "plotly";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-kxat6CjX4xPEtlhRiYJF5wN2Luds7DduZyiUA9/kKWY=";
+    hash = "sha256-6FsLvLsqnkSt/i27q/JJGfNh2zxKeA0t6VYNPCzhR0w=";
   };
 
   propagatedBuildInputs = [
-    plotly
-    flask
-    flask-compress
     dash-core-components
     dash-html-components
     dash-table
+    flask
+    flask-compress
+    plotly
   ];
 
   passthru.optional-dependencies = {
@@ -55,9 +55,9 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [
-    pytestCheckHook
-    pytest-mock
     mock
+    pytest-mock
+    pytestCheckHook
     pyyaml
   ];
 
@@ -67,6 +67,11 @@ buildPythonPackage rec {
     "tests/integration"
   ];
 
+  disabledTests = [
+    # Failed: DID NOT RAISE <class 'ImportError'>
+    "test_missing_flask_compress_raises"
+  ];
+
   pythonImportsCheck = [
     "dash"
   ];
@@ -74,6 +79,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python framework for building analytical web applications";
     homepage = "https://dash.plot.ly/";
+    changelog = "https://github.com/plotly/dash/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ antoinerg ];
   };
diff --git a/pkgs/development/python-modules/dask-awkward/default.nix b/pkgs/development/python-modules/dask-awkward/default.nix
new file mode 100644
index 0000000000000..6dd42fcc3c0ad
--- /dev/null
+++ b/pkgs/development/python-modules/dask-awkward/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, awkward
+, dask
+, hatch-vcs
+, hatchling
+, pyarrow
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "dask-awkward";
+  version = "2023.1.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dask-contrib";
+    repo = pname;
+    rev = version;
+    hash = "sha256-q0mBd4yelnNL7rMWfilituo9h/xmLLLndSCBdY2egEQ=";
+  };
+
+  nativeBuildInputs = [
+    hatch-vcs
+    hatchling
+  ];
+
+  propagatedBuildInputs = [
+    awkward
+    dask
+  ];
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  checkInputs = [
+    pytestCheckHook
+    pyarrow
+  ];
+
+  pythonImportsCheck = [
+    "dask_awkward"
+  ];
+
+  pytestFlagsArray = [
+    # require internet
+    "--deselect=tests/test_parquet.py::test_remote_double"
+    "--deselect=tests/test_parquet.py::test_remote_single"
+  ];
+
+  meta = with lib; {
+    description = "Native Dask collection for awkward arrays, and the library to use it";
+    homepage = "https://github.com/dask-contrib/dask-awkward";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/development/python-modules/datasets/default.nix b/pkgs/development/python-modules/datasets/default.nix
index 2fb9d7ce41276..3e24fde00c951 100644
--- a/pkgs/development/python-modules/datasets/default.nix
+++ b/pkgs/development/python-modules/datasets/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "datasets";
-  version = "2.10.0";
+  version = "2.10.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-GEH7uk8M5pxYDKzfTRNMlnI5yrLr5K2PuD7CJV/wbu4=";
+    hash = "sha256-CLzEJchNKmwfN1ZRQfCFusXDSgvHilwnM0KkcX822MI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/datasette/default.nix b/pkgs/development/python-modules/datasette/default.nix
index 6781f82135512..7c6eafe3808cf 100644
--- a/pkgs/development/python-modules/datasette/default.nix
+++ b/pkgs/development/python-modules/datasette/default.nix
@@ -29,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "datasette";
-  version = "0.64.1";
+  version = "0.64.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     owner = "simonw";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-EXYAiXqEfQVDTwc4MFTroLPEaTZ3QYTlUsuNQ72oHpA=";
+    sha256 = "sha256-AxIJUJzFEAvAV59hYDB3pb5/1rS9d7T0ltl6lVWTCrE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/dbus-python-client-gen/default.nix b/pkgs/development/python-modules/dbus-python-client-gen/default.nix
index ee4a467b5779e..3c7d91ebed5e0 100644
--- a/pkgs/development/python-modules/dbus-python-client-gen/default.nix
+++ b/pkgs/development/python-modules/dbus-python-client-gen/default.nix
@@ -4,17 +4,21 @@
 , into-dbus-python
 , dbus-python
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "dbus-python-client-gen";
-  version = "0.8";
+  version = "0.8.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "stratis-storage";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-nSzxT65WHBVct5pGHmIAHJXftd0tKZeK/argN+V9xcs=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-RYgS4RNLLCtp+5gS/LlzdH7rlub48TSSSKhykkkBcuo=";
   };
 
   propagatedBuildInputs = [
@@ -31,6 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A Python library for generating dbus-python client code";
     homepage = "https://github.com/stratis-storage/dbus-python-client-gen";
+    changelog = "https://github.com/stratis-storage/dbus-python-client-gen/blob/v${version}/CHANGES.txt";
     license = licenses.mpl20;
     maintainers = with maintainers; [ nickcao ];
   };
diff --git a/pkgs/development/python-modules/debugpy/default.nix b/pkgs/development/python-modules/debugpy/default.nix
index c45d6621398f3..4035cc52328e0 100644
--- a/pkgs/development/python-modules/debugpy/default.nix
+++ b/pkgs/development/python-modules/debugpy/default.nix
@@ -13,6 +13,7 @@
 , pytest-xdist
 , pytestCheckHook
 , requests
+, llvmPackages
 }:
 
 buildPythonPackage rec {
@@ -30,12 +31,6 @@ buildPythonPackage rec {
   };
 
   patches = [
-    # Hard code GDB path (used to attach to process)
-    (substituteAll {
-      src = ./hardcode-gdb.patch;
-      inherit gdb;
-    })
-
     # Use nixpkgs version instead of versioneer
     (substituteAll {
       src = ./hardcode-version.patch;
@@ -51,6 +46,18 @@ buildPythonPackage rec {
     # To avoid this issue, debugpy should be installed using python.withPackages:
     # python.withPackages (ps: with ps; [ debugpy ])
     ./fix-test-pythonpath.patch
+  ] ++ lib.optionals stdenv.isLinux [
+    # Hard code GDB path (used to attach to process)
+    (substituteAll {
+      src = ./hardcode-gdb.patch;
+      inherit gdb;
+    })
+  ] ++ lib.optionals stdenv.isDarwin [
+    # Hard code LLDB path (used to attach to process)
+    (substituteAll {
+      src = ./hardcode-lldb.patch;
+      inherit (llvmPackages) lldb;
+    })
   ];
 
   # Remove pre-compiled "attach" libraries and recompile for host platform
diff --git a/pkgs/development/python-modules/debugpy/hardcode-lldb.patch b/pkgs/development/python-modules/debugpy/hardcode-lldb.patch
new file mode 100644
index 0000000000000..43ededa083cf1
--- /dev/null
+++ b/pkgs/development/python-modules/debugpy/hardcode-lldb.patch
@@ -0,0 +1,13 @@
+diff --git a/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py b/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
+index ed43e370..b28ab453 100644
+--- a/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
++++ b/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
+@@ -494,7 +494,7 @@ def run_python_code_mac(pid, python_code, connect_debugger_tracing=False, show_d
+     is_debug = 0
+     # Note that the space in the beginning of each line in the multi-line is important!
+     cmd = [
+-        'lldb',
++        '@lldb@/bin/lldb',
+         '--no-lldbinit',  # Do not automatically parse any '.lldbinit' files.
+         # '--attach-pid',
+         # str(pid),
diff --git a/pkgs/development/python-modules/deid/default.nix b/pkgs/development/python-modules/deid/default.nix
new file mode 100644
index 0000000000000..6c51463138816
--- /dev/null
+++ b/pkgs/development/python-modules/deid/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, matplotlib
+, pydicom
+, python-dateutil
+, setuptools
+}:
+
+let
+  deid-data = buildPythonPackage rec {
+    pname = "deid-data";
+    version = "unstable-2022-12-06";
+    format = "pyproject";
+    disabled = pythonOlder "3.7";
+
+    nativeBuildInputs = [ setuptools ];
+    propagatedBuildInputs = [ pydicom ];
+
+    src = fetchFromGitHub {
+      owner = "pydicom";
+      repo = "deid-data";
+      rev = "5750d25a5048fba429b857c16bf48b0139759644";
+      hash = "sha256-c8NBAN53NyF9dPB7txqYtM0ac0Y+Ch06fMA1LrIUkbc=";
+    };
+
+    meta = {
+      description = "Supplementary data for deid package";
+      homepage = "https://github.com/pydicom/deid-data";
+      license = lib.licenses.mit;
+      maintainers = [ lib.maintainers.bcdarwin ];
+    };
+  };
+in
+buildPythonPackage rec {
+  pname = "deid";
+  version = "0.3.21";
+
+  format = "pyproject";
+  disabled = pythonOlder "3.7";
+
+  # Pypi version has no tests
+  src = fetchFromGitHub {
+    owner = "pydicom";
+    repo = pname;
+    # the github repo does not contain Pypi version tags:
+    rev = "38717b8cbfd69566ba489dd0c9858bb93101e26d";
+    hash = "sha256-QqofxNjshbNfu8vZ37rB6pxj5R8q0wlUhJRhrpkKySk=";
+  };
+
+  propagatedBuildInputs = [
+    matplotlib
+    pydicom
+    python-dateutil
+  ];
+
+  nativeCheckInputs = [
+    deid-data
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "deid"
+  ];
+
+  meta = with lib; {
+    description = "Best-effort anonymization for medical images";
+    homepage = "https://pydicom.github.io/deid";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/deltachat/default.nix b/pkgs/development/python-modules/deltachat/default.nix
index 92777f73e7ad5..034be82d7e391 100644
--- a/pkgs/development/python-modules/deltachat/default.nix
+++ b/pkgs/development/python-modules/deltachat/default.nix
@@ -56,11 +56,8 @@ buildPythonPackage rec {
     "deltachat.message"
   ];
 
-  meta = with lib; {
+  meta = libdeltachat.meta // {
     description = "Python bindings for the Delta Chat Core library";
     homepage = "https://github.com/deltachat/deltachat-core-rust/tree/master/python";
-    changelog = "https://github.com/deltachat/deltachat-core-rust/blob/${version}/python/CHANGELOG";
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ dotlambda srapenne ];
   };
 }
diff --git a/pkgs/development/python-modules/devolo-plc-api/default.nix b/pkgs/development/python-modules/devolo-plc-api/default.nix
index e8bccf2928aa7..643674f4f0a1b 100644
--- a/pkgs/development/python-modules/devolo-plc-api/default.nix
+++ b/pkgs/development/python-modules/devolo-plc-api/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "devolo-plc-api";
-  version = "1.1.0";
+  version = "1.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "2Fake";
     repo = "devolo_plc_api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xM7g6q18A+qmOhQeey4uxs6ow6Hf5YKDdbpXwYr2RXo=";
+    hash = "sha256-Ua6XxFmvF2EDtCZTeVHGRfwNAMjX3p5s4Jo5ylutYqY=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/django-ipware/default.nix b/pkgs/development/python-modules/django-ipware/default.nix
index ba8f1d79db8cc..9513a757673f3 100644
--- a/pkgs/development/python-modules/django-ipware/default.nix
+++ b/pkgs/development/python-modules/django-ipware/default.nix
@@ -1,12 +1,20 @@
-{ lib, buildPythonPackage, fetchPypi, django }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, django
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "django-ipware";
-  version = "4.0.2";
+  version = "5.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "602a58325a4808bd19197fef2676a0b2da2df40d0ecf21be414b2ff48c72ad05";
+    hash = "sha256-T6VgfuheEu5eFYvHVp/x4TT7FXloGqH/Pw7QS+Ib4VM=";
   };
 
   propagatedBuildInputs = [ django ];
@@ -20,6 +28,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A Django application to retrieve user's IP address";
     homepage = "https://github.com/un33k/django-ipware";
+    changelog = "https://github.com/un33k/django-ipware/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/dkimpy/default.nix b/pkgs/development/python-modules/dkimpy/default.nix
index 9d294977ca70b..0d3021612bd16 100644
--- a/pkgs/development/python-modules/dkimpy/default.nix
+++ b/pkgs/development/python-modules/dkimpy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "dkimpy";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-NQDukEVLfCz3ElgeA5jrRwONJ+aRSDKd9jTs2Y3YYhw=";
+    sha256 = "sha256-dVl0S1qQGWkZCPCgxlPiBrbL9jbIxtZuGggnz8jsf5E=";
 };
 
   nativeCheckInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/doorbirdpy/default.nix b/pkgs/development/python-modules/doorbirdpy/default.nix
index 54750b63a9334..c06ab09a4d6fe 100644
--- a/pkgs/development/python-modules/doorbirdpy/default.nix
+++ b/pkgs/development/python-modules/doorbirdpy/default.nix
@@ -1,29 +1,31 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitLab
 , requests
-, pythonOlder
+, pytestCheckHook
+, requests-mock
 }:
 
 buildPythonPackage rec {
   pname = "doorbirdpy";
-  version = "2.2.1";
+  version = "2.2.2";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
-
-  src = fetchPypi {
-    pname = "DoorBirdPy";
-    inherit version;
-    hash = "sha256-o6d8xXF5OuiF0B/wwYhDAZr05D84MuxHBY96G2XHILU=";
+  src = fetchFromGitLab {
+    owner = "klikini";
+    repo = "doorbirdpy";
+    rev = version;
+    hash = "sha256-pgL4JegD1gANefp7jLYb74N9wgpkDgQc/Fe+NyLBrkA=";
   };
 
   propagatedBuildInputs = [
     requests
   ];
 
-  # no tests on PyPI, no tags on GitLab
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+    requests-mock
+  ];
 
   pythonImportsCheck = [
     "doorbirdpy"
diff --git a/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix b/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
index 311f272e4b51f..8cfdcdce74884 100644
--- a/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
+++ b/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "drf-spectacular-sidecar";
-  version = "2022.11.1";
+  version = "2023.3.1";
 
   src = fetchFromGitHub {
     owner = "tfranzel";
     repo = "drf-spectacular-sidecar";
     rev = version;
-    sha256 = "sha256-ztUdV+Bhi3zx5UiwnpiQM/RglUH1n9J48Beuq2GPWdg=";
+    sha256 = "sha256-UTH6t/znN4nYnqDhtFFxXoBXX8Zo19pJE9iDsvw7bGE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dtlssocket/default.nix b/pkgs/development/python-modules/dtlssocket/default.nix
index 28eae55ef9a6e..a819c4ab40d16 100644
--- a/pkgs/development/python-modules/dtlssocket/default.nix
+++ b/pkgs/development/python-modules/dtlssocket/default.nix
@@ -3,21 +3,25 @@
 , fetchPypi
 , autoconf
 , cython
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "dtlssocket";
-  version = "0.1.12";
+  version = "0.1.14";
+
+  format = "pyproject";
 
   src = fetchPypi {
     pname = "DTLSSocket";
     inherit version;
-    sha256 = "909a8f52f1890ec9e92fd46ef609daa8875c2a1c262c0b61200e73c6c2dd5099";
+    hash = "sha256-BLNfdKDKUvc+BJnhLqx7VzJg0opvrdaXhNLCigLH02k=";
   };
 
   nativeBuildInputs = [
     autoconf
     cython
+    setuptools
   ];
 
   # no tests on PyPI, no tags on GitLab
diff --git a/pkgs/development/python-modules/dtschema/default.nix b/pkgs/development/python-modules/dtschema/default.nix
new file mode 100644
index 0000000000000..f2212d8c9c787
--- /dev/null
+++ b/pkgs/development/python-modules/dtschema/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, jsonschema
+, pythonOlder
+, rfc3987
+, ruamel-yaml
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "dtschema";
+  version = "2022.01";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "devicetree-org";
+    repo = "dt-schema";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-wwlXIM/eO3dII/qQpkAGLT3/15rBLi7ZiNtqYFf7Li4=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    jsonschema
+    rfc3987
+    ruamel-yaml
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "dtschema"
+  ];
+
+  meta = with lib; {
+    description = "Tooling for devicetree validation using YAML and jsonschema";
+    homepage = "https://github.com/devicetree-org/dt-schema/";
+    changelog = "https://github.com/devicetree-org/dt-schema/releases/tag/v${version}";
+    license = with licenses; [ bsd2 /* or */ gpl2Only ];
+    maintainers = with maintainers; [ sorki ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/duckdb-engine/default.nix b/pkgs/development/python-modules/duckdb-engine/default.nix
index ea812cb9d5ea8..9ab39eabf9081 100644
--- a/pkgs/development/python-modules/duckdb-engine/default.nix
+++ b/pkgs/development/python-modules/duckdb-engine/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "duckdb-engine";
-  version = "0.6.8";
+  version = "0.6.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     repo = "duckdb_engine";
     owner = "Mause";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Vb2sXZjhBZpZdemtGZ8dajB9Ziu/obLv80R63IH/hJg=";
+    hash = "sha256-F1Y7NXkNnCbCxc43gBN7bt+z0D0EwnzCyBKFzbq9KcA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/easyenergy/default.nix b/pkgs/development/python-modules/easyenergy/default.nix
new file mode 100644
index 0000000000000..bb2191d706b47
--- /dev/null
+++ b/pkgs/development/python-modules/easyenergy/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytest-freezer
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "easyenergy";
+  version = "0.2.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "klaasnicolaas";
+    repo = "python-easyenergy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-EhpZKwoayT53lhyuM/DlyLQ/1OSGuiAaiBdjM0UTZ8E=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace '"0.0.0"' '"${version}"' \
+      --replace 'addopts = "--cov"' ""
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  nativeCheckInputs = [
+    aresponses
+    pytest-asyncio
+    pytest-freezer
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "easyenergy"
+  ];
+
+  meta = with lib; {
+    description = "Module for getting energy/gas prices from easyEnergy";
+    homepage = "https://github.com/klaasnicolaas/python-easyenergy";
+    changelog = "https://github.com/klaasnicolaas/python-easyenergy/releases/tag/v${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/elgato/default.nix b/pkgs/development/python-modules/elgato/default.nix
index 2fbaa7f66ae54..16b468ab621aa 100644
--- a/pkgs/development/python-modules/elgato/default.nix
+++ b/pkgs/development/python-modules/elgato/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "elgato";
-  version = "3.0.0";
+  version = "4.0.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "frenck";
     repo = "python-elgato";
-    rev = "v${version}";
-    sha256 = "sha256-lGHRwDxxgi1QJvK3WrvwghoAZk5J1mdwD4+Is0n7Jgs=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-kyFnc/lMxgYy8s/gAP5vpEPV8a+dphOummr6G7deGQ4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/energyzero/default.nix b/pkgs/development/python-modules/energyzero/default.nix
new file mode 100644
index 0000000000000..ae70514ed863c
--- /dev/null
+++ b/pkgs/development/python-modules/energyzero/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytest-freezer
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "energyzero";
+  version = "0.4.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "klaasnicolaas";
+    repo = "python-energyzero";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-QSxr4hfNlpIbLpeQ8tcdRP3dARB/OxTP9cVgf+P63Lw=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace '"0.0.0"' '"${version}"' \
+      --replace 'addopts = "--cov"' ""
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  nativeCheckInputs = [
+    aresponses
+    pytest-asyncio
+    pytest-freezer
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "energyzero"
+  ];
+
+  meta = with lib; {
+    description = "Module for getting the dynamic prices from EnergyZero";
+    homepage = "https://github.com/klaasnicolaas/python-energyzero";
+    changelog = "https://github.com/klaasnicolaas/python-energyzero/releases/tag/v${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/eradicate/default.nix b/pkgs/development/python-modules/eradicate/default.nix
index 757dad33c0963..8df654c0a2ede 100644
--- a/pkgs/development/python-modules/eradicate/default.nix
+++ b/pkgs/development/python-modules/eradicate/default.nix
@@ -1,19 +1,41 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "eradicate";
-  version = "2.1.0";
+  version = "2.2.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-qsc4SrJbG/IcTAEt6bS/g5iUWhTJjJEVRbLqUKtVgBQ=";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "wemake-services";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-pVjvzW3UVeLMLLYcU0SIE19GEHFmouoA/JKSweTZSGo=";
   };
 
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "eradicate"
+  ];
+
+  pytestFlagsArray = [
+    "test_eradicate.py"
+  ];
+
   meta = with lib; {
-    description = "eradicate removes commented-out code from Python files.";
+    description = "Library to remove commented-out code from Python files";
     homepage = "https://github.com/myint/eradicate";
-    license = [ licenses.mit ];
-
-    maintainers = [ maintainers.mmlb ];
+    changelog = "https://github.com/wemake-services/eradicate/releases/tag/${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ mmlb ];
   };
 }
diff --git a/pkgs/development/python-modules/eufylife-ble-client/default.nix b/pkgs/development/python-modules/eufylife-ble-client/default.nix
new file mode 100644
index 0000000000000..a3a228682f735
--- /dev/null
+++ b/pkgs/development/python-modules/eufylife-ble-client/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, bleak
+, bleak-retry-connector
+, buildPythonPackage
+, cryptography
+, fetchPypi
+, poetry-core
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "eufylife-ble-client";
+  version = "0.1.7";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchPypi {
+    pname = "eufylife_ble_client";
+    inherit version;
+    hash = "sha256-Vt9hHUVAM0d+BcotPUD9v8jXrcg7lEDVChLENUHd3rY=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    bleak
+    bleak-retry-connector
+    cryptography
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "eufylife_ble_client"
+  ];
+
+  meta = with lib; {
+    description = "Module for parsing data from Eufy smart scales";
+    homepage = "https://github.com/bdr99/eufylife-ble-client";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/evaluate/default.nix b/pkgs/development/python-modules/evaluate/default.nix
new file mode 100644
index 0000000000000..6412e7834a627
--- /dev/null
+++ b/pkgs/development/python-modules/evaluate/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pythonRelaxDepsHook
+, pytestCheckHook
+, cookiecutter
+, datasets
+, dill
+, fsspec
+, huggingface-hub
+, importlib-metadata
+, multiprocess
+, numpy
+, packaging
+, pandas
+, pyarrow
+, requests
+, responses
+, tqdm
+, xxhash
+}:
+
+buildPythonPackage rec {
+  pname = "evaluate";
+  version = "0.4.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "huggingface";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-O3W2m12R94iY3F7xgkIiiIyqI6vqiZPXn4jAqEDjVCw=";
+  };
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+  pythonRelaxDeps = [ "responses" ];
+
+  propagatedBuildInputs = [
+    cookiecutter
+    datasets
+    numpy
+    dill
+    pandas
+    requests
+    tqdm
+    xxhash
+    multiprocess
+    fsspec
+    huggingface-hub
+    packaging
+    pyarrow
+    responses
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  # most tests require internet access.
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "evaluate"
+  ];
+
+  meta = with lib; {
+    homepage = "https://huggingface.co/docs/evaluate/index";
+    description = "Easily evaluate machine learning models and datasets";
+    changelog = "https://github.com/huggingface/evaluate/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bcdarwin ];
+    mainProgram = "evaluate-cli";
+  };
+}
diff --git a/pkgs/development/python-modules/evtx/default.nix b/pkgs/development/python-modules/evtx/default.nix
index af6f36ec6f9eb..b949864dc7aaf 100644
--- a/pkgs/development/python-modules/evtx/default.nix
+++ b/pkgs/development/python-modules/evtx/default.nix
@@ -5,6 +5,7 @@
 , pytestCheckHook
 , pythonOlder
 , rustPlatform
+, libiconv
 }:
 
 buildPythonPackage rec {
@@ -32,6 +33,10 @@ buildPythonPackage rec {
     maturinBuildHook
   ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [
+    libiconv
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
@@ -46,6 +51,5 @@ buildPythonPackage rec {
     changelog = "https://github.com/omerbenamram/pyevtx-rs/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index b9e8313263e9f..d218b6cc06eca 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "4.7.6";
+  version = "4.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -36,16 +36,11 @@ buildPythonPackage rec {
     owner = "ecederstrand";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Oarmdc2PuE4kQ/qUqQhuzdTpIrrMFCK72CrVmoSH1DI=";
+    hash = "sha256-4oRIL5s2qN1tB8uijLiPkQTR4cXg4KsxqyZebw/cVkE=";
   };
 
   patches = [
     (fetchpatch {
-      name = "tests-timezones.patch";
-      url = "https://github.com/ecederstrand/exchangelib/commit/d5d386f54adec8ab02f871332b89e1176c214ba2.diff";
-      hash = "sha256-E3Ys6IDJ/yMsvi+1GKbwckkhbNrc9JLM/+GrPtUz+mY=";
-    })
-    (fetchpatch {
       name = "tests-timezones-2.patch";
       url = "https://github.com/ecederstrand/exchangelib/commit/419eafcd9261bfd0617823ee437204d5556a8271.diff";
       excludes = [ "tests/test_ewsdatetime.py" ];
@@ -87,6 +82,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Client for Microsoft Exchange Web Services (EWS)";
     homepage = "https://github.com/ecederstrand/exchangelib";
+    changelog = "https://github.com/ecederstrand/exchangelib/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd2;
     maintainers = with maintainers; [ catern ];
   };
diff --git a/pkgs/development/python-modules/execnb/default.nix b/pkgs/development/python-modules/execnb/default.nix
new file mode 100644
index 0000000000000..22661c9ad07a5
--- /dev/null
+++ b/pkgs/development/python-modules/execnb/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fastcore
+, traitlets
+, ipython
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "execnb";
+  version = "0.1.4";
+  format = "setuptools";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-y9gSvzJA8Fsh56HbA8SszlozsBBfTLfgWGDXm9uSBvA=";
+  };
+
+  propagatedBuildInputs = [ fastcore traitlets ipython ];
+
+  # no real tests
+  doCheck = false;
+  pythonImportsCheck = [ "execnb" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fastai/execnb";
+    description = "Execute a jupyter notebook, fast, without needing jupyter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ rxiao ];
+  };
+}
diff --git a/pkgs/development/python-modules/exrex/default.nix b/pkgs/development/python-modules/exrex/default.nix
index 8c980c8d00fad..0d51a9862ee7a 100644
--- a/pkgs/development/python-modules/exrex/default.nix
+++ b/pkgs/development/python-modules/exrex/default.nix
@@ -1,17 +1,28 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "exrex";
-  version = "0.10.5";
+  version = "unstable-2021-04-22";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1wq8nyycdprxl9q9y1pfhkbca4rvysj45h1xn7waybl3v67v3f1z";
+  src = fetchFromGitHub {
+    owner = "asciimoo";
+    repo = "exrex";
+    rev = "9a66706e7582a9cf31c4121629c9035e329bbe21";
+    sha256 = "sha256-g31tHY+LzGxwBmUpSa0DV7ruLfYwmuDg+XyBxMZRa9U=";
   };
 
+  patches = [
+    (fetchpatch {
+      # https://github.com/asciimoo/exrex/pull/65
+      url = "https://github.com/asciimoo/exrex/commit/44712bfb1350a509581a5834d9fa8aebcd9434db.patch";
+      hash = "sha256-thKotSvdVdVjXaG/AhsXmW51FHLOYUeYTYw8SA/k2t4=";
+    })
+  ];
+
   # Projec thas no released tests
   doCheck = false;
   pythonImportsCheck = [ "exrex" ];
diff --git a/pkgs/development/python-modules/extractcode/7z.nix b/pkgs/development/python-modules/extractcode/7z.nix
index be6fcde55c29b..6e2db205e3efb 100644
--- a/pkgs/development/python-modules/extractcode/7z.nix
+++ b/pkgs/development/python-modules/extractcode/7z.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
     rm 7z 7z.so
     ln -s ${p7zip}/bin/7z 7z
-    ln -s ${p7zip}/lib/p7zip/7z.so 7z.so
+    ln -s ${lib.getLib p7zip}/lib/p7zip/7z.so 7z.so
 
     popd
   '';
diff --git a/pkgs/development/python-modules/fakeredis/default.nix b/pkgs/development/python-modules/fakeredis/default.nix
index d600e50d395b2..f721742a15a63 100644
--- a/pkgs/development/python-modules/fakeredis/default.nix
+++ b/pkgs/development/python-modules/fakeredis/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "fakeredis";
-  version = "2.9.2";
+  version = "2.10.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "dsoftwareinc";
     repo = "fakeredis-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YwUNjEM0Lmj14fTqQXy78LRzlfffy7KZOTulufkeRZA=";
+    hash = "sha256-H1SeNlX/NqdewNY+rs5HLTK0dRnB1H+EQfzf2g/y1ek=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/fastai/default.nix b/pkgs/development/python-modules/fastai/default.nix
new file mode 100644
index 0000000000000..4a4d9a16d107d
--- /dev/null
+++ b/pkgs/development/python-modules/fastai/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fastprogress
+, fastcore
+, fastdownload
+, torch
+, torchvision
+, matplotlib
+, pillow
+, scikit-learn
+, scipy
+, spacy
+, pandas
+, requests
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "fastai";
+  version = "2.7.11";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-xrOhdmrCWvsPtCFDsnUxiSd7ox+Pgpmte5LyNPCHRYU=";
+  };
+
+  propagatedBuildInputs = [
+    fastprogress
+    fastcore
+    fastdownload
+    torchvision
+    matplotlib
+    pillow
+    scikit-learn
+    scipy
+    spacy
+    pandas
+    requests
+  ];
+
+  doCheck = false;
+  pythonImportsCheck = [ "fastai" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fastai/fastai";
+    description = "The fastai deep learning library";
+    changelog = "https://github.com/fastai/fastai/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ rxiao ];
+  };
+}
diff --git a/pkgs/development/python-modules/fastdownload/default.nix b/pkgs/development/python-modules/fastdownload/default.nix
new file mode 100644
index 0000000000000..4a60a70429868
--- /dev/null
+++ b/pkgs/development/python-modules/fastdownload/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fastprogress
+, fastcore
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "fastdownload";
+  version = "0.0.6";
+  format = "setuptools";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-1ayb0zx8rFKDgqlq/tVVLqDkh47T5jofHt53r8bWr30=";
+  };
+
+  propagatedBuildInputs = [ fastprogress fastcore ];
+
+  # no real tests
+  doCheck = false;
+  pythonImportsCheck = [ "fastdownload" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fastai/fastdownload";
+    description = "Easily download, verify, and extract archives";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ rxiao ];
+  };
+}
diff --git a/pkgs/development/python-modules/faust-cchardet/default.nix b/pkgs/development/python-modules/faust-cchardet/default.nix
new file mode 100644
index 0000000000000..ca2cdc02162e4
--- /dev/null
+++ b/pkgs/development/python-modules/faust-cchardet/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, cython
+, pkgconfig
+, setuptools
+, wheel
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "faust-cchardet";
+  version = "2.1.18";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "faust-streaming";
+    repo = "cChardet";
+    rev = "refs/tags/v${version}";
+    fetchSubmodules = true;
+    hash = "sha256-jTOqxBss/FAb8nMkU62H6O4ysmirD2FTA9mtvxXh43k=";
+  };
+
+  nativeBuildInputs = [
+    cython
+    pkgconfig
+    setuptools
+    wheel
+  ];
+
+  pythonImportsCheck = [
+    "cchardet"
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = {
+    changelog = "https://github.com/faust-streaming/cChardet/blob/${src.rev}/CHANGES.rst";
+    description = "High-speed universal character encoding detector";
+    homepage = "https://github.com/faust-streaming/cChardet";
+    license = lib.licenses.mpl11;
+    maintainers = with lib.maintainers; [ dotlambda ivan ];
+  };
+}
diff --git a/pkgs/development/python-modules/fire/default.nix b/pkgs/development/python-modules/fire/default.nix
index f17bc7923f8b6..1055bada787e4 100644
--- a/pkgs/development/python-modules/fire/default.nix
+++ b/pkgs/development/python-modules/fire/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , six
 , hypothesis
 , mock
@@ -24,6 +25,15 @@ buildPythonPackage rec {
     hash = "sha256-cwY1RRNtpAn6LnBASQLTNf4XXSPnfhOa1WgglGEM2/s=";
   };
 
+  patches = [
+    # https://github.com/google/python-fire/pull/440
+    (fetchpatch {
+      name = "remove-asyncio-coroutine.patch";
+      url = "https://github.com/google/python-fire/pull/440/commits/30b775a7b36ce7fbc04656c7eec4809f99d3e178.patch";
+      hash = "sha256-GDAAlvZKbJl3OhajsEO0SZvWIXcPDi3eNKKVgbwSNKk=";
+    })
+  ];
+
   propagatedBuildInputs = [
     six
     termcolor
diff --git a/pkgs/development/python-modules/flask-security-too/default.nix b/pkgs/development/python-modules/flask-security-too/default.nix
index 1af60bcc6caf7..638199020a3ce 100644
--- a/pkgs/development/python-modules/flask-security-too/default.nix
+++ b/pkgs/development/python-modules/flask-security-too/default.nix
@@ -46,7 +46,7 @@
 
 buildPythonPackage rec {
   pname = "flask-security-too";
-  version = "5.1.0";
+  version = "5.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Flask-Security-Too";
     inherit version;
-    hash = "sha256-nSo7fdY9tiE7PnhosXh1eBfVa5l6a43XNvp6vKvrq5Y=";
+    hash = "sha256-CgtlPP0cXSUplL2HsfESQxzsLVys7fpJs24XQNohw30=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flipr-api/default.nix b/pkgs/development/python-modules/flipr-api/default.nix
index 3e1f5be4d8ae8..1f23aaa2481e1 100644
--- a/pkgs/development/python-modules/flipr-api/default.nix
+++ b/pkgs/development/python-modules/flipr-api/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "flipr-api";
-  version = "1.4.4";
+  version = "1.5.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -20,8 +20,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "cnico";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-LcxLJQ2MAif4yC+/SvO7IEa1lNOV67FgJU1UWT4ope4=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-IAxB3i/HkwO5sjDh2aBCtijOcG0VIbatQjTWIh0inoM=";
   };
 
   nativeBuildInputs = [
@@ -46,6 +46,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python client for Flipr API";
     homepage = "https://github.com/cnico/flipr-api";
+    changelog = "https://github.com/cnico/flipr-api/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/foolscap/default.nix b/pkgs/development/python-modules/foolscap/default.nix
index 771feb3215fed..2da82762195bc 100644
--- a/pkgs/development/python-modules/foolscap/default.nix
+++ b/pkgs/development/python-modules/foolscap/default.nix
@@ -1,46 +1,45 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , mock
 , pyopenssl
 , pytestCheckHook
+, pythonOlder
 , service-identity
+, six
 , twisted
+, txi2p-tahoe
+, txtorcon
 }:
 
 buildPythonPackage rec {
   pname = "foolscap";
-  version = "21.7.0";
+  version = "23.3.0";
+
+  disabled = pythonOlder "3.7";
+
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-6dGFU4YNk1joXXZi2c2L84JtUbTs1ICgXfv0/EU2P4Q=";
+    hash = "sha256-Vu7oXC1brsgBwr2q59TAgx8j1AFRbi5mjRNIWZTbkUU=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-tests-with-twisted-22.10.0.patch";
-      url = "https://github.com/warner/foolscap/commit/c04202eb5d4cf052e650ec2985ea6037605fd79e.patch";
-      hash = "sha256-RldDc18n3WYHdYg0ZmM8PBffIuiGa1NIfdoHs3mEEfc=";
-    })
-  ];
-
   propagatedBuildInputs = [
-    mock
+    six
     twisted
     pyopenssl
-    service-identity
-  ];
+  ] ++ twisted.optional-dependencies.tls;
+
+  passthru.optional-dependencies = {
+    i2p = [ txi2p-tahoe ];
+    tor = [ txtorcon ];
+  };
 
   nativeCheckInputs = [
+    mock
     pytestCheckHook
-  ];
-
-  disabledTestPaths = [
-    # Not all dependencies are present
-    "src/foolscap/test/test_connection.py"
-  ];
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   pythonImportsCheck = [ "foolscap" ];
 
diff --git a/pkgs/development/python-modules/formulaic/default.nix b/pkgs/development/python-modules/formulaic/default.nix
new file mode 100644
index 0000000000000..1f7d875b917a8
--- /dev/null
+++ b/pkgs/development/python-modules/formulaic/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, hatchling
+, hatch-vcs
+, git
+, astor
+, interface-meta
+, numpy
+, pandas
+, scipy
+, sympy
+, wrapt
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "formulaic";
+  version = "0.5.2";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "matthewwardrop";
+    repo = "formulaic";
+    rev = "v${version}";
+    sha256 = "sha256-sIvHTuUS/nkcDjRgZCoEOY2negIOsarzH0PeXJsavWc=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    hatchling
+    hatch-vcs
+  ];
+
+  propagatedBuildInputs = [
+    astor
+    numpy
+    pandas
+    scipy
+    wrapt
+    typing-extensions
+    interface-meta
+    sympy
+  ];
+
+  pythonImportsCheck = [ "formulaic" ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTestPaths = [
+    "tests/transforms/test_poly.py"
+  ];
+
+  meta = {
+    homepage = "https://matthewwardrop.github.io/formulaic/";
+    description = "High-performance implementation of Wilkinson formulas for";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ swflint ];
+  };
+}
diff --git a/pkgs/development/python-modules/fritzconnection/default.nix b/pkgs/development/python-modules/fritzconnection/default.nix
index 79301cf600317..bdc0826ac87b3 100644
--- a/pkgs/development/python-modules/fritzconnection/default.nix
+++ b/pkgs/development/python-modules/fritzconnection/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "fritzconnection";
-  version = "1.11.0";
+  version = "1.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "kbr";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-BHlOX5STnKaIOM5tiBZ9JHNQIYVZfIPDMuSw6DAJliA=";
+    hash = "sha256-1giXmmyuy+qrY6xV3yZn4kcDd6w6l8uCL4ozcZE4N00=";
   };
 
   propagatedBuildInputs = [
@@ -28,6 +28,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  preCheck = ''
+    export HOME=$TEMP
+  '';
+
   pythonImportsCheck = [
     "fritzconnection"
   ];
@@ -35,7 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module to communicate with the AVM Fritz!Box";
     homepage = "https://github.com/kbr/fritzconnection";
-    changelog = "https://fritzconnection.readthedocs.io/en/${version}/sources/changes.html";
+    changelog = "https://fritzconnection.readthedocs.io/en/${version}/sources/version_history.html";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda valodim ];
   };
diff --git a/pkgs/development/python-modules/garminconnect/default.nix b/pkgs/development/python-modules/garminconnect/default.nix
index adadfc030bf15..1d5cd945881d6 100644
--- a/pkgs/development/python-modules/garminconnect/default.nix
+++ b/pkgs/development/python-modules/garminconnect/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "garminconnect";
-  version = "0.1.53";
+  version = "0.1.54";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "cyberjunky";
     repo = "python-garminconnect";
     rev = "refs/tags/${version}";
-    hash = "sha256-bUOdurCuAxpVag+mv3brxYIyNu9KhoDauL+lcrcob/k=";
+    hash = "sha256-lxifhL70Yn3BIjeRPnWqOs97Oy65RD0Rrgw4bJno2kI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gbinder-python/default.nix b/pkgs/development/python-modules/gbinder-python/default.nix
index e575c51e315f1..9d9b906e24437 100644
--- a/pkgs/development/python-modules/gbinder-python/default.nix
+++ b/pkgs/development/python-modules/gbinder-python/default.nix
@@ -26,6 +26,11 @@ buildPythonPackage rec {
     pkg-config
   ];
 
+  postPatch = ''
+    # Fix pkg-config name for cross-compilation
+    substituteInPlace setup.py --replace "pkg-config" "$PKG_CONFIG"
+  '';
+
   setupPyGlobalFlags = [ "--cython" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/gcovr/default.nix b/pkgs/development/python-modules/gcovr/default.nix
index 2661ae1503fdd..81fe8ae042959 100644
--- a/pkgs/development/python-modules/gcovr/default.nix
+++ b/pkgs/development/python-modules/gcovr/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "gcovr";
-  version = "5.2";
+  version = "6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IXGVCF7JQ0YpGoe3sebZz97u5WKz4PmjKyXJUws7zo8=";
+    hash = "sha256-hjjV9E3vEOOOMWbIozvvZkPsIEaH4Kx9NFzkGpjFdQs=";
   };
 
   propagatedBuildInputs = [
@@ -39,6 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python script for summarizing gcov data";
     homepage = "https://www.gcovr.com/";
+    changelog = "https://github.com/gcovr/gcovr/blob/${version}/CHANGELOG.rst";
     license = licenses.bsd0;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/ghrepo-stats/default.nix b/pkgs/development/python-modules/ghrepo-stats/default.nix
index 00f49fbdaea53..44d0c7136dc07 100644
--- a/pkgs/development/python-modules/ghrepo-stats/default.nix
+++ b/pkgs/development/python-modules/ghrepo-stats/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "ghrepo-stats";
-  version = "0.5.2";
+  version = "0.5.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "mrbean-bremen";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-YKGVDE1cM3Lcr9lHE2iserleob0BE3DxchdSX65CJBE=";
+    hash = "sha256-65+Ah1DCEkIym2ehlZkubLIE+yJynlYNwE4g1IZ+AzM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/glcontext/default.nix b/pkgs/development/python-modules/glcontext/default.nix
index c080b4950410a..a654759347163 100644
--- a/pkgs/development/python-modules/glcontext/default.nix
+++ b/pkgs/development/python-modules/glcontext/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "glcontext";
-  version = "2.3.7";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "moderngl";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-U/oP9nx7iTK6EYbUl90UD7fTOo5oDlh9ULPNjRibsXE=";
+    sha256 = "sha256-TGkVDZbxxvOOal+rLHeCNUoyOzvg9wQsAMan8LDn938=";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix
index b459d44bb5794..d8277c2026175 100644
--- a/pkgs/development/python-modules/goodwe/default.nix
+++ b/pkgs/development/python-modules/goodwe/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.2.27";
+  version = "0.2.28";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "marcelblijleven";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-J7hmtFEvJ2ivVi5UsahcpWen/gw65bf3rhBEpiOKsWk=";
+    sha256 = "sha256-HkOlvZaCQOt+jbmzal17W5eU7SEq+kzTgbFd3fiTY/A=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix b/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
index b105e9cfe16d4..d96874aeebd22 100644
--- a/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-access-context-manager";
-  version = "0.1.15";
+  version = "0.1.16";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-W6Nb+H2CaULQ7Hp1hYxtnF9ITYa++Usc7XVoPkQPnVk=";
+    hash = "sha256-+L5Rre6LHpSlc+yzdQpMLSvURLHd412apDes5zwzdgc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-automl/default.nix b/pkgs/development/python-modules/google-cloud-automl/default.nix
index dddde1a3093ae..e6051ed93a338 100644
--- a/pkgs/development/python-modules/google-cloud-automl/default.nix
+++ b/pkgs/development/python-modules/google-cloud-automl/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-automl";
-  version = "2.10.1";
+  version = "2.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pS/fm9837vmdvh6msk69nTeo/gj1StxsfFf6DsmOQE4=";
+    hash = "sha256-fc/87JW9FExvZPk+pHLuntLHfdj0kRi2e5ohRq5Ujpg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
index 2c5d0a9a54740..dc51cb1988e78 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "3.10.1";
+  version = "3.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GcgJhFT3L5TlVZYXjQQ9eENRcv/V176hF86BSsN7K/A=";
+    hash = "sha256-AXBFNLF39+H/KLrWQ/rXQAAMC6hMsGXQ5XFTDs4Y3EY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
index 7aaa53d39cf11..1842c9c5becea 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-storage";
-  version = "2.18.1";
+  version = "2.19.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XNPeWe8nYGmJr/MVxt0uBZMf0N2QEp5hYge0RJRWUqA=";
+    hash = "sha256-5bsOrT4IIrxOnPIpvR0T1MOPGeUNU6odcKs82aN8B8I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigtable/default.nix b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
index f92580db80b97..660dd96cfe8ae 100644
--- a/pkgs/development/python-modules/google-cloud-bigtable/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigtable";
-  version = "2.15.0";
+  version = "2.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-idnWz7o7RuOAZbY+H5STVAVa1rexThDY3Zb5eaI10Ao=";
+    hash = "sha256-wysLs0seCRDadYj9aRowebq6+kMi7RZp/DITC4lqsVY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-compute/default.nix b/pkgs/development/python-modules/google-cloud-compute/default.nix
index 19910f1167c04..b0314d615a99c 100644
--- a/pkgs/development/python-modules/google-cloud-compute/default.nix
+++ b/pkgs/development/python-modules/google-cloud-compute/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-compute";
-  version = "1.8.0";
+  version = "1.10.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pnhXkYSXph7aIZJoI3tXTNIUkH44S22QDIGXUl9ceFU=";
+    hash = "sha256-/iUUTtBxBmiDIczIRuwbr/SLTs2hYKXSAbufmjFtMDU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-container/default.nix b/pkgs/development/python-modules/google-cloud-container/default.nix
index 64cdac603e0b8..224f5fe757af8 100644
--- a/pkgs/development/python-modules/google-cloud-container/default.nix
+++ b/pkgs/development/python-modules/google-cloud-container/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "2.17.3";
+  version = "2.17.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sYF6yV/VENn11V74vWU2p/pSkPAfYPtW2l1TdHTSR2g=";
+    hash = "sha256-MG5/znRnPN98NwNYYU9835+4RcXDjaQPatqICnRMWqI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-datastore/default.nix b/pkgs/development/python-modules/google-cloud-datastore/default.nix
index 553b7a7dd1437..a6441e16b9719 100644
--- a/pkgs/development/python-modules/google-cloud-datastore/default.nix
+++ b/pkgs/development/python-modules/google-cloud-datastore/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-datastore";
-  version = "2.13.2";
+  version = "2.15.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ikstW53KrRr4vnmtbr0AOG8/kHaF8excJFbwclhCA7A=";
+    hash = "sha256-HbIUo7JpYajnaESs7sZPuEpqyGiaYeB8ooYXgH/kqoE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-dlp/default.nix b/pkgs/development/python-modules/google-cloud-dlp/default.nix
index 86888e3fb6219..94941e4eef3c2 100644
--- a/pkgs/development/python-modules/google-cloud-dlp/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dlp/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "3.11.1";
+  version = "3.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TwVY6/4TSY8cPj3y/A7+cxpyVJ9+lPg+vAKNhfBNfqI=";
+    hash = "sha256-v874eaWthn7DD9Sxg+hrXr/93k7u591h0GL68wwmeP4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
index b9dfd63441ba7..3d7f5bdab7567 100644
--- a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
+++ b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-error-reporting";
-  version = "1.8.2";
+  version = "1.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bwl1gWLux5LJMZIS/tJFMhHs1LcaDVCTgNrke6ASiBI=";
+    hash = "sha256-5URk8yZy5ld17p7UXf5y+kciM2bH8NmgEvJ1SqwYJ9o=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-iam/default.nix b/pkgs/development/python-modules/google-cloud-iam/default.nix
index b06a5d3499be9..aff4744fb01b4 100644
--- a/pkgs/development/python-modules/google-cloud-iam/default.nix
+++ b/pkgs/development/python-modules/google-cloud-iam/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-iam";
-  version = "2.10.0";
+  version = "2.11.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8q/Am7x5LFN9Uaw37QdUdwL19J1FgxRKjRL0Vrc+1TI=";
+    hash = "sha256-viN/BiIYmE83B1JMh5THgj2/HLGOeIotDVLdTODZBAg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-iot/default.nix b/pkgs/development/python-modules/google-cloud-iot/default.nix
index f3fdc38124aa3..2aab21e7e7854 100644
--- a/pkgs/development/python-modules/google-cloud-iot/default.nix
+++ b/pkgs/development/python-modules/google-cloud-iot/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-iot";
-  version = "2.8.1";
+  version = "2.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Rh23HbHv1FVmiZtyofv0bktv7tZWN3IS5jQawzbFfRk=";
+    hash = "sha256-mr14CDo+M01ZRfNLerFNeikExmIcV0j17zX/Xn8JT80=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-kms/default.nix b/pkgs/development/python-modules/google-cloud-kms/default.nix
index 27a2e9e067dc2..250305eea2546 100644
--- a/pkgs/development/python-modules/google-cloud-kms/default.nix
+++ b/pkgs/development/python-modules/google-cloud-kms/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-kms";
-  version = "2.13.0";
+  version = "2.15.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0nOQnibi1T0JW9NQaKSrNCnfB5EgsnNYMVCEiUsPRdU=";
+    hash = "sha256-/tm08lOWjQMjV1IVov8cX0EJsKjwxMQD2NIcJnoHdVc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-redis/default.nix b/pkgs/development/python-modules/google-cloud-redis/default.nix
index 248fcb7140b71..147407a428abf 100644
--- a/pkgs/development/python-modules/google-cloud-redis/default.nix
+++ b/pkgs/development/python-modules/google-cloud-redis/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-redis";
-  version = "2.11.1";
+  version = "2.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dRavwtaU+dpRZkO49Q0Btmh2Mi/zUWbvZbImrfUkrAM=";
+    hash = "sha256-0uhWndF50vKVUk71DwoInQORAiR5vQyNMMA+T2p69W4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-resource-manager/default.nix b/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
index b2aa7804b601a..af5bc6855b53a 100644
--- a/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-resource-manager";
-  version = "1.8.1";
+  version = "1.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-npTv+f533JK/J2ceJ6Na7mS90HfKaHORmGnFz1LBzLQ=";
+    hash = "sha256-LRSAJoqdqMbNlQhoH7YQ9cZ3g7Iq4pkItaxTQTGZw1E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
index 169e3496e779f..71d99448085db 100644
--- a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.15.1";
+  version = "2.16.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0ubTvpHT6HfCg5lfdbzAnP77oWPZw2N78qZs6tGim6M=";
+    hash = "sha256-O1K5qd82o+PnzWZ40GC+0PSgWzZvp5hl7ImFxRgx5Ww=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
index 28bf273bd5616..31d3cf1fd3b44 100644
--- a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
+++ b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-securitycenter";
-  version = "1.18.2";
+  version = "1.19.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-O1jSSozVmeDRoTCtRhsBDlZ/o8g/8ccGkJCg6hp7ob8=";
+    hash = "sha256-97KZK9O/+Ul2hnXh1s2HeoQQd4CFcQjJ9HC6fP2ZEgc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-spanner/default.nix b/pkgs/development/python-modules/google-cloud-spanner/default.nix
index 18c57e8898b1a..ce2a5366ac60e 100644
--- a/pkgs/development/python-modules/google-cloud-spanner/default.nix
+++ b/pkgs/development/python-modules/google-cloud-spanner/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-spanner";
-  version = "3.27.1";
+  version = "3.28.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1/pGE8Ql50B8hY4I/o5AhPIDOuE3EQcro2zMN23zLsc=";
+    hash = "sha256-3WA2SUC9frxafOXiGquDinwyffNrubQ4QEnfMxxC2KE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-speech/default.nix b/pkgs/development/python-modules/google-cloud-speech/default.nix
index 2de8604ccfb46..7116db6ca0c14 100644
--- a/pkgs/development/python-modules/google-cloud-speech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-speech/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-speech";
-  version = "2.17.3";
+  version = "2.18.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RgGL9SXlmI4mcuL8phcPOCiGo2xhzRZbnpRw72U1KzI=";
+    hash = "sha256-MCFfkPtTc7TdN+WF4tcnHq+Kun5vQDhdSSsW97/cDzA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-tasks/default.nix b/pkgs/development/python-modules/google-cloud-tasks/default.nix
index 8751b583729b1..3ab5abb61d909 100644
--- a/pkgs/development/python-modules/google-cloud-tasks/default.nix
+++ b/pkgs/development/python-modules/google-cloud-tasks/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "2.12.1";
+  version = "2.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2kRj5zlAPVO2U3EzN+opz5OBtwEru5RqGOXGqLUPaUA=";
+    hash = "sha256-7V57grRH2ysU765TDmqq7DOna9o8Nu9v4HjDAIf/ETA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-trace/default.nix b/pkgs/development/python-modules/google-cloud-trace/default.nix
index a753acdcc1e89..f21dd08b0f80e 100644
--- a/pkgs/development/python-modules/google-cloud-trace/default.nix
+++ b/pkgs/development/python-modules/google-cloud-trace/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-trace";
-  version = "1.10.0";
+  version = "1.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aU6XD+uj/X9Gs8z2vP0rhTlaqkg7u4H9CV/CJl2b7ak=";
+    hash = "sha256-i3jUbzivzXG9bIM06ZKG9olZubBOuCWz5kk5yPZRv4k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-translate/default.nix b/pkgs/development/python-modules/google-cloud-translate/default.nix
index 6ae9ff0ea946b..e6744bd66f527 100644
--- a/pkgs/development/python-modules/google-cloud-translate/default.nix
+++ b/pkgs/development/python-modules/google-cloud-translate/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-translate";
-  version = "3.10.1";
+  version = "3.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-++1k8lhJfJ7e/oK//IyYx9W/RacQa/1RwdrhyvCYWEM=";
+    hash = "sha256-phwMOu6YEndLOOvXDnoYvShXGMMR+O/CfUyp5+gMdKM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-videointelligence/default.nix b/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
index b8019c03cc5ff..e8707e9d9d3fd 100644
--- a/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
+++ b/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-videointelligence";
-  version = "2.10.1";
+  version = "2.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HlmuzMOaCl7z9NBVI5HoCH1vltQCeel30B5roX/+2HE=";
+    hash = "sha256-rkqKaHNzbcIjYyCe+AN1WCLvjZ1HjWHH4xeCs8/TkZI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-vision/default.nix b/pkgs/development/python-modules/google-cloud-vision/default.nix
index af99aa9bd7420..96fde115308e2 100644
--- a/pkgs/development/python-modules/google-cloud-vision/default.nix
+++ b/pkgs/development/python-modules/google-cloud-vision/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-vision";
-  version = "3.3.1";
+  version = "3.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-G7v09CA1pJ2OSL7gBzYvfRGrjPjQElxnyeUvP2vpFJQ=";
+    hash = "sha256-yywRVh0hL6kzpAkKRVIUBGGAAMvyHuNKWzCkUDRHO04=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix b/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
index 91b7920f58430..69645f43d4c5c 100644
--- a/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
+++ b/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-websecurityscanner";
-  version = "1.11.1";
+  version = "1.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nVzFxoEIk01fPnybPQ7elFSff9ofSI9Ik6B+P4o41N8=";
+    hash = "sha256-od8eEY0hYr3fdImD5BTb3+EJR5IsrNm9g6m/IWscmz4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-resumable-media/default.nix b/pkgs/development/python-modules/google-resumable-media/default.nix
index 3dda409f155ea..b39e550860adc 100644
--- a/pkgs/development/python-modules/google-resumable-media/default.nix
+++ b/pkgs/development/python-modules/google-resumable-media/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-resumable-media";
-  version = "2.4.0";
+  version = "2.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jVUYUC+SuezISsRneb1PCWlOyzujij58pzeobRXLyh8=";
+    hash = "sha256-Fbii5130LcZQLRMG2wvOJke6YBP5zQO24XNowIhu6Qo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio/default.nix b/pkgs/development/python-modules/grpcio/default.nix
index 486742ccb6055..a8dade04a36f2 100644
--- a/pkgs/development/python-modules/grpcio/default.nix
+++ b/pkgs/development/python-modules/grpcio/default.nix
@@ -26,7 +26,14 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six protobuf ]
     ++ lib.optionals (isPy27) [ enum34 futures ];
 
-  preBuild = lib.optionalString stdenv.isDarwin "unset AR";
+  preBuild = ''
+    export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="$NIX_BUILD_CORES"
+    if [ -z "$enableParallelBuilding" ]; then
+      GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=1
+    fi
+  '' + lib.optionalString stdenv.isDarwin ''
+    unset AR
+  '';
 
   GRPC_BUILD_WITH_BORING_SSL_ASM = "";
   GRPC_PYTHON_BUILD_SYSTEM_OPENSSL = 1;
@@ -36,6 +43,8 @@ buildPythonPackage rec {
   # does not contain any tests
   doCheck = false;
 
+  enableParallelBuilding = true;
+
   pythonImportsCheck = [ "grpc" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/gsd/default.nix b/pkgs/development/python-modules/gsd/default.nix
index 076f08dc7a56f..934ba6270182d 100644
--- a/pkgs/development/python-modules/gsd/default.nix
+++ b/pkgs/development/python-modules/gsd/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "gsd";
-  version = "2.7.0";
+  version = "2.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "glotzerlab";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-drzmlHfU2ut3o7JASvFbEcf6OVtWa8kAyzpeDV5iGlc=";
+    hash = "sha256-S2BEEGifHt4ZXOxCEtwXh7wr/n1fI+gwImnrEJmYjzI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/guessit/default.nix b/pkgs/development/python-modules/guessit/default.nix
index 824cb8f1ae5a4..1b1639ef7d1a1 100644
--- a/pkgs/development/python-modules/guessit/default.nix
+++ b/pkgs/development/python-modules/guessit/default.nix
@@ -15,30 +15,39 @@
 
 buildPythonPackage rec {
   pname = "guessit";
-  version = "3.5.0";
+  version = "3.7.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eiaeOlfMBz5htWJZiT6rPFwC0a2Ky8iuLnjF6DnxELw=";
+    hash = "sha256-LBjZgu5tsw211ZVXrdAySitJvzlAp1KUdRBjKitYo8E=";
   };
 
   propagatedBuildInputs = [
     rebulk
     babelfish
     python-dateutil
-  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
+  ] ++ lib.optionals (pythonOlder "3.9") [
+   importlib-resources
+ ];
 
-  nativeCheckInputs = [ py pytestCheckHook pytest-mock pytest-benchmark pyyaml ];
+  nativeCheckInputs = [
+    py
+    pytestCheckHook
+    pytest-mock
+    pytest-benchmark
+    pyyaml
+  ];
 
   pytestFlagsArray = [ "--benchmark-disable" ];
 
   pythonImportsCheck = [ "guessit" ];
 
-  meta = {
-    homepage = "https://doc.guessit.io/";
+  meta = with lib; {
     description = "A Python library that extracts as much information as possible from a video filename";
+    homepage = "https://guessit-io.github.io/guessit/";
     changelog = "https://github.com/guessit-io/guessit/raw/v${version}/CHANGELOG.md";
-    license = lib.licenses.lgpl3Only;
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/hassil/default.nix b/pkgs/development/python-modules/hassil/default.nix
index c8949968536c6..1b80c9a4986e1 100644
--- a/pkgs/development/python-modules/hassil/default.nix
+++ b/pkgs/development/python-modules/hassil/default.nix
@@ -1,13 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-
-# build
-, antlr4
+, pythonOlder
 
 # propagates
-, antlr4-python3-runtime
-, dataclasses-json
+, importlib-resources
 , pyyaml
 
 # tests
@@ -16,7 +13,7 @@
 
 let
   pname = "hassil";
-  version = "0.2.6";
+  version = "1.0.6";
 in
 buildPythonPackage {
   inherit pname version;
@@ -24,23 +21,13 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KbzGZLW+HrG4meOa0mVTh3jmt43gRxl9yN9asWMDxiY=";
+    hash = "sha256-rCSVKFIkfPg2aYFwuYVLMxMO8S11dV8f4eckpFbNB3k=";
   };
 
-  nativeBuildInputs = [
-    antlr4
-  ];
-
-  postPatch = ''
-    sed -i 's/antlr4-python3-runtime==.*/antlr4-python3-runtime/' requirements.txt
-    rm hassil/grammar/*.{tokens,interp}
-    antlr -Dlanguage=Python3 -visitor -o hassil/grammar/ *.g4
-  '';
-
   propagatedBuildInputs = [
-    antlr4-python3-runtime
-    dataclasses-json
     pyyaml
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    importlib-resources
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/hatch-jupyter-builder/default.nix b/pkgs/development/python-modules/hatch-jupyter-builder/default.nix
index d49c2aedb46f1..8ce6f73c547b3 100644
--- a/pkgs/development/python-modules/hatch-jupyter-builder/default.nix
+++ b/pkgs/development/python-modules/hatch-jupyter-builder/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , hatchling
-, hatch
 , pytest-mock
 , pytestCheckHook
 , tomli
@@ -26,7 +25,6 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    hatch
     pytest-mock
     pytestCheckHook
     tomli
diff --git a/pkgs/development/python-modules/haversine/default.nix b/pkgs/development/python-modules/haversine/default.nix
index 38bd8f54beab6..328af63b6e9e3 100644
--- a/pkgs/development/python-modules/haversine/default.nix
+++ b/pkgs/development/python-modules/haversine/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "haversine";
-  version = "2.7.0";
+  version = "2.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "mapado";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-iAGG1mjrt6oJ0IkmlJwrvb2Bpk4dNxV7ee9LYov03UY=";
+    hash = "sha256-cwvTs/91eJhjmeuCQAUBgfnKuCiLEg1jSnrXfx9VWkI=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/herepy/default.nix b/pkgs/development/python-modules/herepy/default.nix
index c0c5fb0742f14..379790d4b79b9 100644
--- a/pkgs/development/python-modules/herepy/default.nix
+++ b/pkgs/development/python-modules/herepy/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "herepy";
-  version = "3.5.8";
+  version = "3.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "abdullahselek";
     repo = "HerePy";
     rev = "refs/tags/${version}";
-    hash = "sha256-BwuH3GxEXiIFFM0na8Jhgp7J5TPW41/u89LWf+EprG4=";
+    hash = "sha256-wz6agxPKQvWobRIiYKYU2og33tzswd0qG1hawPCh1qI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/holidays/default.nix b/pkgs/development/python-modules/holidays/default.nix
index bab50ea617b3c..0110d038e64b4 100644
--- a/pkgs/development/python-modules/holidays/default.nix
+++ b/pkgs/development/python-modules/holidays/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "holidays";
-  version = "0.20";
+  version = "0.21";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "dr-prodigy";
     repo = "python-holidays";
     rev = "refs/tags/v.${version}";
-    hash = "sha256-hz0v4g94RMA1dKOLu4BSYnK5EPNl1hIWEShFJWO0F3A=";
+    hash = "sha256-acV/m4orkOEbON7C4ThGvaQtTMpp4c8FNesC7UepJFc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
index 8807d0877bb8d..67393f6f113f8 100644
--- a/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
+++ b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-clusters";
-  version = "2023.1.0";
+  version = "2023.2.2";
   format = "wheel";
 
   src = fetchPypi {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     pname = "home_assistant_chip_clusters";
     dist = "py3";
     python = "py3";
-    hash = "sha256-2UcDu2b3DtijAOUt+eazleoKxEhAgsU3MY/OoEBpLNg=";
+    hash = "sha256-FsIE4dcZOP24/DX6TLnmoCHMYe4f9gWqmv2L25ujqu4=";
   };
 
   propagatedBuildInputs = [
@@ -30,6 +30,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python-base APIs and tools for CHIP";
     homepage = "https://github.com/home-assistant-libs/chip-wheels";
+    changelog = "https://github.com/home-assistant-libs/chip-wheels/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = teams.home-assistant.members;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/development/python-modules/home-assistant-chip-core/default.nix b/pkgs/development/python-modules/home-assistant-chip-core/default.nix
index a3a8cf93b810d..a16e5c78c652c 100644
--- a/pkgs/development/python-modules/home-assistant-chip-core/default.nix
+++ b/pkgs/development/python-modules/home-assistant-chip-core/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-core";
-  version = "2023.1.0";
+  version = "2023.2.2";
   format = "wheel";
 
   disabled = pythonOlder "3.7";
@@ -33,11 +33,11 @@ buildPythonPackage rec {
     system = {
       "aarch64-linux" = {
         name = "aarch64";
-        hash = "sha256-hNaGE2s/oFFAVCWu50IeeaFTlOSByJJAKvBgX1iDrVE=";
+        hash = "sha256-e3OIpTGPMj+YSx/pqzGi5paUAIpDhI94prhHL3DkM18=";
       };
       "x86_64-linux" = {
         name = "x86_64";
-        hash = "sha256-zXxbDGfyFUXuEnaH4a8R4LXH0gfbMCkKPBJJGp77xHM=";
+        hash = "sha256-15olERnpfe4PbDsDfw47vsYsqjFe8P8IDmSSGxGLtx8=";
       };
     }.${stdenv.system} or (throw "Unsupported system");
   in fetchPypi {
@@ -85,6 +85,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python-base APIs and tools for CHIP";
     homepage = "https://github.com/home-assistant-libs/chip-wheels";
+    changelog = "https://github.com/home-assistant-libs/chip-wheels/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = teams.home-assistant.members;
     platforms = [ "aarch64-linux" "x86_64-linux" ];
diff --git a/pkgs/development/python-modules/homematicip/default.nix b/pkgs/development/python-modules/homematicip/default.nix
index c929aa197642a..2f384ab5c078c 100644
--- a/pkgs/development/python-modules/homematicip/default.nix
+++ b/pkgs/development/python-modules/homematicip/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "homematicip";
-  version = "1.0.13";
+  version = "1.0.14";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "hahn-th";
     repo = "homematicip-rest-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-bNVvQbwtef7Q0OBtR/8vsDDPkgGQgzdBC3QyoxLW3Wo=";
+    hash = "sha256-2tJoIknqcwEvX2mQsrSEEh45pEMpNfeefuXVKSJTwig=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hvac/default.nix b/pkgs/development/python-modules/hvac/default.nix
index 9cbc361c1da66..a9da2ef29ca38 100644
--- a/pkgs/development/python-modules/hvac/default.nix
+++ b/pkgs/development/python-modules/hvac/default.nix
@@ -4,15 +4,19 @@
 , pyhcl
 , requests
 , six
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "hvac";
-  version = "1.0.2";
+  version = "1.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5AKMXA7Me3/PalTSkPmSQOWrzbn/5ELRwU8GExDUxhw=";
+    hash = "sha256-B53KWIVt7mZG7VovIoOAnBbS3u3eHp6WFbKRAySkuWk=";
   };
 
   propagatedBuildInputs = [
@@ -29,6 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "HashiCorp Vault API client";
     homepage = "https://github.com/ianunruh/hvac";
+    changelog = "https://github.com/hvac/hvac/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/hwi/default.nix b/pkgs/development/python-modules/hwi/default.nix
index f87e589eec1bf..86887c3146356 100644
--- a/pkgs/development/python-modules/hwi/default.nix
+++ b/pkgs/development/python-modules/hwi/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "hwi";
-  version = "2.2.0";
+  version = "2.2.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "bitcoin-core";
     repo = "HWI";
-    rev = version;
-    sha256 = "sha256-mLavlJHYU6gUqqc83uHMZfOglrKDIiRNN7Nf2i3fXzE=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-vQJN2YXWGvYSVV9lemZyu61inc9iBFxf5nIlpIiRe+s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix
index 061b20a835dad..f7aee6777d411 100644
--- a/pkgs/development/python-modules/identify/default.nix
+++ b/pkgs/development/python-modules/identify/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "2.5.18";
+  version = "2.5.20";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "pre-commit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Pf9/mjbyC859WT8ZreFq5u6YER/tRgsQuqIgt6mdPqE=";
+    sha256 = "sha256-QBFA4vq58rlW9XR1jrn2VrrsZuW+hZJHrZzSoRVZUMQ=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/iminuit/default.nix b/pkgs/development/python-modules/iminuit/default.nix
index 97dec9cf66f39..f210e9f0ab279 100644
--- a/pkgs/development/python-modules/iminuit/default.nix
+++ b/pkgs/development/python-modules/iminuit/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "iminuit";
-  version = "2.20.0";
+  version = "2.21.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pz/m4C814xgPwBvFwXlO32Yv8XJcO8Kk9DNWd5nadQQ=";
+    hash = "sha256-ivRsweaIvkiBceTfAI457wN+tbntJ3t4HTynWf29vAI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
index 6303ec76fe05f..2d71334eadcbf 100644
--- a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
+++ b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "insteon-frontend-home-assistant";
-  version = "0.3.2";
+  version = "0.3.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7jRf6fp+5u6qqR5xP1R+kp6LURsBVqfct6yuCkbxBMw=";
+    hash = "sha256-aZ10z7xCVWq4V2+jPCybFa5LKGhvtchrwgTVFfxhM+o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/interface-meta/0001-fix-version.patch b/pkgs/development/python-modules/interface-meta/0001-fix-version.patch
new file mode 100644
index 0000000000000..7ff24a210ebd4
--- /dev/null
+++ b/pkgs/development/python-modules/interface-meta/0001-fix-version.patch
@@ -0,0 +1,36 @@
+From 581102ae94a7e6dfd3ad3fa5371068189b9e7c44 Mon Sep 17 00:00:00 2001
+From: "Samuel W. Flint" <swflint@flintfam.org>
+Date: Thu, 27 Oct 2022 12:42:07 -0500
+Subject: [PATCH] fix-versions
+
+---
+ interface_meta/_version.py | 2 +-
+ pyproject.toml             | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/interface_meta/_version.py b/interface_meta/_version.py
+index 3d50665..b3d3818 100644
+--- a/interface_meta/_version.py
++++ b/interface_meta/_version.py
+@@ -1,5 +1,5 @@
+ __author__ = "Matthew Wardrop"
+ __author_email__ = "mpwardrop@gmail.com"
+-__version__ = "0.0.0"
++__version__ = "1.3.0"
+ 
+ __dependencies__ = []
+diff --git a/pyproject.toml b/pyproject.toml
+index 43dab27..e543549 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,6 +1,6 @@
+ [tool.poetry]
+ name = "interface_meta"
+-version = "0.0.0"
++version = "1.3.0"
+ description = "`interface_meta` provides a convenient way to expose an extensible API with enforced method signatures and consistent documentation."
+ authors = ["Matthew Wardrop <mpwardrop@gmail.com>"]
+ license = "MIT"
+-- 
+2.37.0
+
diff --git a/pkgs/development/python-modules/interface-meta/default.nix b/pkgs/development/python-modules/interface-meta/default.nix
new file mode 100644
index 0000000000000..952452b07d3c3
--- /dev/null
+++ b/pkgs/development/python-modules/interface-meta/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, poetry-core, poetry-dynamic-versioning }:
+
+buildPythonPackage rec {
+  pname = "interface-meta";
+  version = "1.3.0";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "matthewwardrop";
+    repo = "interface_meta";
+    rev = "v${version}";
+    sha256 = "0rzh11wnab33b11391vc2ynf8ncxn22b12wn46lmgkrc5mqza8hd";
+  };
+
+  patches = [
+    ./0001-fix-version.patch
+  ];
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propogatedBuildInputs = [
+    poetry-dynamic-versioning
+  ];
+
+  pythonImportsCheck = [ "interface_meta" ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = {
+    homepage = "https://github.com/matthewwardrop/interface_meta";
+    description = "Convenient way to expose an extensible API with enforced method signatures and consistent documentation";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ swflint ];
+  };
+}
diff --git a/pkgs/development/python-modules/ipwhois/default.nix b/pkgs/development/python-modules/ipwhois/default.nix
new file mode 100644
index 0000000000000..676ec23081a6d
--- /dev/null
+++ b/pkgs/development/python-modules/ipwhois/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, dnspython
+, fetchFromGitHub
+, iana-etc
+, libredirect
+, pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
+}:
+
+buildPythonPackage rec {
+  pname = "ipwhois";
+  version = "1.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "secynic";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-2CfRRHlIIaycUtzKeMBKi6pVPeBCb1nW3/1hoxQU1YM=";
+  };
+
+  pythonRelaxDeps = [
+    "dnspython"
+  ];
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = [
+    dnspython
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "ipwhois"
+  ];
+
+  preCheck = lib.optionalString stdenv.isLinux ''
+    echo "nameserver 127.0.0.1" > resolv.conf
+    export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf) \
+      LD_PRELOAD=${libredirect}/lib/libredirect.so
+  '';
+
+  disabledTestPaths = [
+    # Tests require network access
+    "ipwhois/tests/online/"
+  ];
+
+  disabledTests = [
+    "test_lookup"
+    "test_unique_addresses"
+    "test_get_http_json"
+  ];
+
+  meta = with lib; {
+    description = "Library to retrieve and parse whois data";
+    homepage = "https://github.com/secynic/ipwhois";
+    changelog = "https://github.com/secynic/ipwhois/blob/v${version}/CHANGES.rst";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/jaxlib/default.nix b/pkgs/development/python-modules/jaxlib/default.nix
index 2c13defe43838..ad48af827ee56 100644
--- a/pkgs/development/python-modules/jaxlib/default.nix
+++ b/pkgs/development/python-modules/jaxlib/default.nix
@@ -164,7 +164,7 @@ let
       build --action_env TF_CUDA_PATHS="${cudatoolkit_joined},${cudnn},${nccl}"
       build --action_env TF_CUDA_VERSION="${lib.versions.majorMinor cudatoolkit.version}"
       build --action_env TF_CUDNN_VERSION="${lib.versions.major cudnn.version}"
-      build:cuda --action_env TF_CUDA_COMPUTE_CAPABILITIES="${builtins.concatStringsSep "," cudaFlags.cudaRealArches}"
+      build:cuda --action_env TF_CUDA_COMPUTE_CAPABILITIES="${builtins.concatStringsSep "," cudaFlags.realArches}"
     '' + ''
       CFG
     '';
diff --git a/pkgs/development/python-modules/jaxopt/default.nix b/pkgs/development/python-modules/jaxopt/default.nix
index 09a1ff66f263e..b89d08b16da1e 100644
--- a/pkgs/development/python-modules/jaxopt/default.nix
+++ b/pkgs/development/python-modules/jaxopt/default.nix
@@ -11,7 +11,7 @@
 , numpy
 , optax
 , scipy
-, scikitlearn
+, scikit-learn
 }:
 
 buildPythonPackage rec {
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
     cvxpy
     optax
-    scikitlearn
+    scikit-learn
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index 4cbba4d11a4b5..dbf050bcf90c7 100644
--- a/pkgs/development/python-modules/jc/default.nix
+++ b/pkgs/development/python-modules/jc/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.22.5";
+  version = "1.23.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-ktK/s9Tt1XNIiW/Ztn4znsPXIMrScB4KAS027YqxIVM=";
+    sha256 = "sha256-0ZKdySzRHHtDWvSrQ0qJTggu48TyCBVrtEZZkM8HqNQ=";
   };
 
   propagatedBuildInputs = [ ruamel-yaml xmltodict pygments ];
diff --git a/pkgs/development/python-modules/jenkins-job-builder/default.nix b/pkgs/development/python-modules/jenkins-job-builder/default.nix
index 49b7dd44c6039..e85ce03595163 100644
--- a/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "jenkins-job-builder";
-  version = "4.1.0";
+  version = "4.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5jCltdomD4u5LZrYJFUHB/sLORXYuWoeJOalAci0+XQ=";
+    sha256 = "sha256-pvka8TLMEclzJ2Iw4iLSiR1ioV3frzQStLu21+kSSHI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/json-stream-rs-tokenizer/Cargo.lock b/pkgs/development/python-modules/json-stream-rs-tokenizer/Cargo.lock
new file mode 100644
index 0000000000000..7c6a60e6894b8
--- /dev/null
+++ b/pkgs/development/python-modules/json-stream-rs-tokenizer/Cargo.lock
@@ -0,0 +1,596 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "arrayvec"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bytecount"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
+
+[[package]]
+name = "camino"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo-platform"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo_metadata"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "error-chain"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "indoc"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da2d6f23ffea9d7e76c53eee25dfb67bcd8fde7f1198b0855350698c9f07c780"
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+
+[[package]]
+name = "json-stream-rs-tokenizer"
+version = "0.1.0"
+dependencies = [
+ "num-bigint",
+ "pyo3",
+ "pyo3-build-config 0.17.3",
+ "pyo3-file",
+ "thiserror",
+ "utf8-chars",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+
+[[package]]
+name = "lock_api"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "num-bigint"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-sys",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.49"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "pulldown-cmark"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63"
+dependencies = [
+ "bitflags",
+ "memchr",
+ "unicase",
+]
+
+[[package]]
+name = "pyo3"
+version = "0.16.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0220c44442c9b239dd4357aa856ac468a4f5e1f0df19ddb89b2522952eb4c6ca"
+dependencies = [
+ "cfg-if",
+ "indoc",
+ "libc",
+ "num-bigint",
+ "parking_lot",
+ "pyo3-build-config 0.16.6",
+ "pyo3-ffi",
+ "pyo3-macros",
+ "unindent",
+]
+
+[[package]]
+name = "pyo3-build-config"
+version = "0.16.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c819d397859445928609d0ec5afc2da5204e0d0f73d6bf9e153b04e83c9cdc2"
+dependencies = [
+ "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
+name = "pyo3-build-config"
+version = "0.17.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28fcd1e73f06ec85bf3280c48c67e731d8290ad3d730f8be9dc07946923005c8"
+dependencies = [
+ "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
+name = "pyo3-ffi"
+version = "0.16.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca882703ab55f54702d7bfe1189b41b0af10272389f04cae38fe4cd56c65f75f"
+dependencies = [
+ "libc",
+ "pyo3-build-config 0.16.6",
+]
+
+[[package]]
+name = "pyo3-file"
+version = "0.5.0"
+source = "git+https://github.com/smheidrich/pyo3-file.git?branch=divide-buf-length-by-4-to-fix-textio-bug-forjsonstream#c29bf591842e3487e8b00890b91e0d4841103138"
+dependencies = [
+ "pyo3",
+ "skeptic",
+]
+
+[[package]]
+name = "pyo3-macros"
+version = "0.16.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "568749402955ad7be7bad9a09b8593851cd36e549ac90bfd44079cea500f3f21"
+dependencies = [
+ "proc-macro2",
+ "pyo3-macros-backend",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pyo3-macros-backend"
+version = "0.16.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "611f64e82d98f447787e82b8e7b0ebc681e1eb78fc1252668b2c605ffb4e1eb8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "semver"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.152"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.152"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "skeptic"
+version = "0.13.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8"
+dependencies = [
+ "bytecount",
+ "cargo_metadata",
+ "error-chain",
+ "glob",
+ "pulldown-cmark",
+ "tempfile",
+ "walkdir",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+[[package]]
+name = "syn"
+version = "1.0.107"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d"
+
+[[package]]
+name = "tempfile"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "libc",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "unicase"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+
+[[package]]
+name = "unindent"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+
+[[package]]
+name = "utf8-chars"
+version = "2.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "437bc4a6a3acdb2a99491b19ec1c2131a536d9f1d7da112341ec5c9e5f4dfc3a"
+dependencies = [
+ "arrayvec",
+]
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "walkdir"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+dependencies = [
+ "same-file",
+ "winapi",
+ "winapi-util",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
diff --git a/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix b/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
new file mode 100644
index 0000000000000..21277a176dbce
--- /dev/null
+++ b/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, rustPlatform
+, setuptools-rust
+, json-stream-rs-tokenizer
+, json-stream
+}:
+
+buildPythonPackage rec {
+  pname = "json-stream-rs-tokenizer";
+  version = "0.4.13";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "smheidrich";
+    repo = "py-json-stream-rs-tokenizer";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-9pJi80V7WKvsgtp0ffItWnjoOvFvfE/Sz6y2VlsU+wQ=";
+  };
+
+  postPatch = ''
+    cp ${./Cargo.lock} ./Cargo.lock
+  '';
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src postPatch;
+    name = "${pname}-${version}";
+    hash = "sha256-TjRdHSXHmF6fzCshX1I4Sq+A/fEmBHDPGZvJUxL13aM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-rust
+  ]
+  ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  # Tests depend on json-stream, which depends on this package.
+  # To avoid infinite recursion, we only enable tests when building passthru.tests.
+  doCheck = false;
+
+  checkInputs = [
+    json-stream
+  ];
+
+  pythonImportsCheck = [
+    "json_stream_rs_tokenizer"
+  ];
+
+  passthru.tests = {
+    runTests = json-stream-rs-tokenizer.overrideAttrs (_: { doCheck = true; });
+  };
+
+  meta = with lib; {
+    description = "A faster tokenizer for the json-stream Python library";
+    homepage = "https://github.com/smheidrich/py-json-stream-rs-tokenizer";
+    license = licenses.mit;
+    maintainers = with maintainers; [ winter ];
+  };
+}
diff --git a/pkgs/development/python-modules/json-stream/default.nix b/pkgs/development/python-modules/json-stream/default.nix
index de3d7b65c54d1..010edcd27a1e2 100644
--- a/pkgs/development/python-modules/json-stream/default.nix
+++ b/pkgs/development/python-modules/json-stream/default.nix
@@ -1,30 +1,38 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
+, iconv
 , pytestCheckHook
 , pythonOlder
 , requests
+, json-stream-rs-tokenizer
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "json-stream";
-  version = "1.5.1";
+  version = "2.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-htajifmbXtivUwsORzBzJA68nJCACcL75kiBysVYCxY=";
+    hash = "sha256-Vg6zF4iR4YqVAsx93Gy5mO2JNldm2f7BhNBtjzVY82w=";
   };
 
   nativeBuildInputs = [
     setuptools
   ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [
+    iconv
+  ];
+
   propagatedBuildInputs = [
     requests
+    json-stream-rs-tokenizer
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/junos-eznc/default.nix b/pkgs/development/python-modules/junos-eznc/default.nix
index c7c9997cf8ffc..d50dd571764b4 100644
--- a/pkgs/development/python-modules/junos-eznc/default.nix
+++ b/pkgs/development/python-modules/junos-eznc/default.nix
@@ -1,41 +1,45 @@
 { lib
 , buildPythonPackage
-, fetchpatch
 , fetchFromGitHub
-
-# propagates
+, fetchpatch
 , jinja2
 , lxml
+, mock
 , ncclient
 , netaddr
+, nose
 , ntc-templates
 , paramiko
 , pyparsing
 , pyserial
+, pythonOlder
 , pyyaml
 , scp
 , six
 , transitions
 , yamlordereddictloader
-
-# tests
-, mock
-, nose
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "junos-eznc";
-  version = "2.6.6";
+  version = "2.6.7";
   format = "setuptools";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "Juniper";
     repo = "py-junos-eznc";
     rev = "refs/tags/${version}";
-    hash = "sha256-0JF9/lSIquXp25bM3GESqLC//aorSVT0hHccaOmQuM8=";
+    hash = "sha256-+hGybznip5RpJm89MLg9JO4B/y50OIdgtmV2FIpZShU=";
   };
 
+  postPatch = ''
+    # https://github.com/Juniper/py-junos-eznc/issues/1236
+    substituteInPlace lib/jnpr/junos/utils/scp.py \
+      --replace "inspect.getargspec" "inspect.getfullargspec"
+  '';
+
   propagatedBuildInputs = [
     jinja2
     lxml
@@ -61,11 +65,14 @@ buildPythonPackage rec {
     nosetests -v -a unit --exclude=test_sw_put_ftp
   '';
 
-  pythonImportsCheck = [ "jnpr.junos" ];
+  pythonImportsCheck = [
+    "jnpr.junos"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/Juniper/py-junos-eznc";
+    changelog = "https://github.com/Juniper/py-junos-eznc/releases/tag/${version}";
     description = "Junos 'EZ' automation for non-programmers";
+    homepage = "https://github.com/Juniper/py-junos-eznc";
     license = licenses.asl20;
     maintainers = with maintainers; [ xnaveira ];
   };
diff --git a/pkgs/development/python-modules/jupyter-book/default.nix b/pkgs/development/python-modules/jupyter-book/default.nix
index ac2a6c8125df6..6cee08d867136 100644
--- a/pkgs/development/python-modules/jupyter-book/default.nix
+++ b/pkgs/development/python-modules/jupyter-book/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "jupyter-book";
-  version = "0.13.2";
+  version = "0.15.0";
 
   format = "flit";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-wJWY0tBrlCkOFDfGZS4xWvv87sOlyrNl3fiGqgayqTs=";
+    sha256 = "sha256-eUw3zC+6kx/OQvMhzkG6R3b2ricX0kvC+fCBD4mkEuo=";
   };
 
   nativeBuildInputs = [
@@ -65,8 +65,6 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = [
     "docutils"
-    "myst-nb"
-    "sphinx"
   ];
 
   pythonImportsCheck = [
@@ -76,6 +74,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Build a book with Jupyter Notebooks and Sphinx";
     homepage = "https://jupyterbook.org/";
+    changelog = "https://github.com/executablebooks/jupyter-book/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ marsam ];
   };
diff --git a/pkgs/development/python-modules/kaggle/default.nix b/pkgs/development/python-modules/kaggle/default.nix
index 6b67818decfc2..a07450fab76ae 100644
--- a/pkgs/development/python-modules/kaggle/default.nix
+++ b/pkgs/development/python-modules/kaggle/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "kaggle";
-  version = "1.5.12";
+  version = "1.5.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b4d87d107bff743aaa805c2b382c3661c4c175cdb159656d4972be2a9cef42cb";
+    sha256 = "sha256-g2TFbDYSXLgZWHbZEdC8nvvBcxZ+ljuenveTeJupp/4=";
   };
 
   # The version bounds in the setup.py file are unnecessarily restrictive.
diff --git a/pkgs/development/python-modules/klein/default.nix b/pkgs/development/python-modules/klein/default.nix
index 0fda816533cff..641388fbdd573 100644
--- a/pkgs/development/python-modules/klein/default.nix
+++ b/pkgs/development/python-modules/klein/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
-    ${python.interpreter} -m twisted.trial -j $NIX_BUILD_CORES klein
+    ${python.interpreter} -m twisted.trial klein
   '';
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/lcgit/default.nix b/pkgs/development/python-modules/lcgit/default.nix
new file mode 100644
index 0000000000000..967ef29fe2a2d
--- /dev/null
+++ b/pkgs/development/python-modules/lcgit/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "lcgit";
+  version = "0.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "cisagov";
+    repo = "lcgit";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-MYRqlfz2MRayBT7YGZmcyqJdoDRfENmgxk/TmhyoAlQ=";
+  };
+
+  postPatch = ''
+    substituteInPlace pytest.ini \
+      --replace " --cov" ""
+  '';
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "lcgit"
+  ];
+
+  meta = with lib; {
+    description = "A pythonic Linear Congruential Generator iterator";
+    homepage = "https://github.com/cisagov/lcgit";
+    changelog = "https://github.com/cisagov/lcgit/releases/tag/v${version}";
+    license = licenses.cc0;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/libagent/default.nix b/pkgs/development/python-modules/libagent/default.nix
index 3bb8962e5a3a5..8a4a5a6a2d49a 100644
--- a/pkgs/development/python-modules/libagent/default.nix
+++ b/pkgs/development/python-modules/libagent/default.nix
@@ -5,6 +5,7 @@
 , cryptography
 , ed25519
 , ecdsa
+, gnupg
 , semver
 , mnemonic
 , unidecode
@@ -30,6 +31,13 @@ buildPythonPackage rec {
     sha256 = "sha256-RISAy0efdatr9u4CWNRGnlffkC8ksw1NyRpJWKwqz+s=";
   };
 
+  # hardcode the path to gpgconf in the libagent library
+  postPatch = ''
+    substituteInPlace libagent/gpg/keyring.py \
+      --replace "util.which('gpgconf')" "'${gnupg}/bin/gpgconf'" \
+      --replace "'gpg-connect-agent'" "'${gnupg}/bin/gpg-connect-agent'"
+  '';
+
   propagatedBuildInputs = [
     unidecode
     backports-shutil-which
diff --git a/pkgs/development/python-modules/libvirt/default.nix b/pkgs/development/python-modules/libvirt/default.nix
index 36d45c5ac6647..13916a74ea441 100644
--- a/pkgs/development/python-modules/libvirt/default.nix
+++ b/pkgs/development/python-modules/libvirt/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "libvirt";
-  version = "9.0.0";
+  version = "9.1.0";
 
   src = fetchFromGitLab {
     owner = "libvirt";
     repo = "libvirt-python";
     rev = "v${version}";
-    sha256 = "sha256-/u6sctXn4Jmn2bUl1FjjrKpHReaTg+O9LprKXx3OAyU=";
+    sha256 = "sha256-kdWmgmkvI7yaqyFytPnHN6OtF+gsRe58q6AlXFycfQ8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/lifelines/default.nix b/pkgs/development/python-modules/lifelines/default.nix
new file mode 100644
index 0000000000000..437a7881b751d
--- /dev/null
+++ b/pkgs/development/python-modules/lifelines/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, numpy
+, scipy
+, pandas
+, matplotlib
+, autograd
+, autograd-gamma
+, formulaic
+, scikit-learn
+, sybil
+, flaky
+, jinja2
+, dill
+, psutil
+}:
+
+buildPythonPackage rec {
+  pname = "lifelines";
+  version = "0.27.4";
+
+  src = fetchFromGitHub {
+    owner = "CamDavidsonPilon";
+    repo = "lifelines";
+    rev = "v${version}";
+    sha256 = "sha256-KDoXplqkTsk85dmcTBhbj2GDcC4ry+2z5C2QHAnBTw4=";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    pandas
+    matplotlib
+    autograd
+    autograd-gamma
+    formulaic
+  ];
+
+  pythonImportsCheck = [ "lifelines" ];
+
+  checkInputs = [
+    dill
+    flaky
+    jinja2
+    psutil
+    pytestCheckHook
+    scikit-learn
+    sybil
+  ];
+
+  disabledTestPaths = [
+    "lifelines/tests/test_estimation.py"
+  ];
+
+  meta = {
+    homepage = "https://lifelines.readthedocs.io";
+    description = "Survival analysis in Python";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ swflint ];
+  };
+}
diff --git a/pkgs/development/python-modules/lineedit/default.nix b/pkgs/development/python-modules/lineedit/default.nix
new file mode 100644
index 0000000000000..5631054627646
--- /dev/null
+++ b/pkgs/development/python-modules/lineedit/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pygments
+, six
+, wcwidth
+, pytestCheckHook
+, pyte
+, ptyprocess
+, pexpect
+}:
+
+buildPythonPackage rec {
+  pname = "lineedit";
+  version = "0.1.6";
+
+  src = fetchFromGitHub {
+    owner = "randy3k";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "fq2NpjIQkIq1yzXEUxi6cz80kutVqcH6MqJXHtpTFsk=";
+  };
+
+  propagatedBuildInputs = [
+    pygments
+    six
+    wcwidth
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pyte
+    pexpect
+    ptyprocess
+  ];
+
+  pythonImportsCheck = [ "lineedit" ];
+
+  meta = with lib; {
+    description = "A readline library based on prompt_toolkit which supports multiple modes";
+    homepage = "https://github.com/randy3k/lineedit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ savyajha ];
+  };
+}
diff --git a/pkgs/development/python-modules/lsprotocol/default.nix b/pkgs/development/python-modules/lsprotocol/default.nix
index e2dcd7bb9a748..b447ab18cba50 100644
--- a/pkgs/development/python-modules/lsprotocol/default.nix
+++ b/pkgs/development/python-modules/lsprotocol/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "lsprotocol";
-  version = "2022.0.0a9";
+  version = "2022.0.0a10";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-6XecPKuBhwtkmZrGozzO+VEryI5wwy9hlvWE1oV6ajk=";
+    hash = "sha256-IAFNEWpBRVAGcJNIV1bog9K2nANRw/qJfCJ9+Wu/yJc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mdutils/default.nix b/pkgs/development/python-modules/mdutils/default.nix
index b24f24ab912ce..6eb0fff733731 100644
--- a/pkgs/development/python-modules/mdutils/default.nix
+++ b/pkgs/development/python-modules/mdutils/default.nix
@@ -6,17 +6,19 @@
 
 buildPythonPackage rec {
   pname = "mdutils";
-  version = "1.4.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "didix21";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-regIrMWbGmW574dfojxZFJoivpaqOpN1I6YsqLEp8BM=";
+    hash = "sha256-/J5c0ndpm+Zy8QV6MqlMGkoh6fX5gBgfc0NvYowsdEo=";
   };
 
   nativeCheckInputs = [ unittestCheckHook ];
 
+  pythonImportsCheck = [ "mdutils" ];
+
   meta = with lib; {
     description = "Set of basic tools that can help to create Markdown files";
     longDescription = ''
diff --git a/pkgs/development/python-modules/merge3/default.nix b/pkgs/development/python-modules/merge3/default.nix
new file mode 100644
index 0000000000000..e16a73eee3df4
--- /dev/null
+++ b/pkgs/development/python-modules/merge3/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "merge3";
+  version = "0.0.13";
+
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8abda1d2d49776323d23d09bfdd80d943a57d43d28d6152ffd2c87956a9b6b54";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  pythonImportsCheck = [
+    "merge3"
+  ];
+
+  meta = with lib; {
+    description = "Python implementation of 3-way merge";
+    homepage = "https://github.com/breezy-team/merge3";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ marsam ];
+  };
+}
diff --git a/pkgs/development/python-modules/mixins/default.nix b/pkgs/development/python-modules/mixins/default.nix
new file mode 100644
index 0000000000000..9c9bfbc3a4075
--- /dev/null
+++ b/pkgs/development/python-modules/mixins/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "mixins";
+  version = "0.1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-SmYYRzo6wClQBMc2oRgO0CQEHOxWe8GFL24TPa6A4NQ=";
+  };
+
+  pythonImportsCheck = [
+    "mixins"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/nickderobertis/py-mixins";
+    description = "Mixin classes which may be added to your own classes to add certain functionality to them";
+    maintainers = with maintainers; [ aanderse ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/mpv/default.nix b/pkgs/development/python-modules/mpv/default.nix
index 01d9d58b23dbd..7eaa604e7b3cd 100644
--- a/pkgs/development/python-modules/mpv/default.nix
+++ b/pkgs/development/python-modules/mpv/default.nix
@@ -23,7 +23,8 @@ buildPythonPackage rec {
   '';
 
   # tests impure, will error if it can't load libmpv.so
-  checkPhase = "${python.interpreter} -c 'import mpv'";
+  doCheck = false;
+  pythonImportsCheck = [ "mpv" ];
 
   meta = with lib; {
     description = "A python interface to the mpv media player";
diff --git a/pkgs/development/python-modules/mypy-boto3-builder/default.nix b/pkgs/development/python-modules/mypy-boto3-builder/default.nix
index 3c582230ee2e9..8ec6e1e384b09 100644
--- a/pkgs/development/python-modules/mypy-boto3-builder/default.nix
+++ b/pkgs/development/python-modules/mypy-boto3-builder/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "mypy-boto3-builder";
-  version = "7.12.4";
+  version = "7.13.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "youtype";
     repo = "mypy_boto3_builder";
     rev = "refs/tags/${version}";
-    hash = "sha256-X8ATnycG7MvzDNaMClvhyy4Qy4hvoNhn0sQ+s/JnX64=";
+    hash = "sha256-9D2w1rnYf7aKOABXmePghR695dlq37bci+bVOWrQCYw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/nbdev/default.nix b/pkgs/development/python-modules/nbdev/default.nix
new file mode 100644
index 0000000000000..c47508918a8da
--- /dev/null
+++ b/pkgs/development/python-modules/nbdev/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fastprogress
+, fastcore
+, asttokens
+, astunparse
+, watchdog
+, execnb
+, ghapi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "nbdev";
+  version = "2.3.11";
+  format = "setuptools";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-ITMCmuAb1lXONbP5MREpk8vfNSztoTEmT87W1o+fbIU=";
+  };
+
+  propagatedBuildInputs = [ fastprogress fastcore asttokens astunparse watchdog execnb ghapi ];
+  # no real tests
+  doCheck = false;
+  pythonImportsCheck = [ "nbdev" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fastai/nbdev";
+    description = "Create delightful software with Jupyter Notebooks";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ rxiao ];
+  };
+}
diff --git a/pkgs/development/python-modules/nestedtext/default.nix b/pkgs/development/python-modules/nestedtext/default.nix
index c8b0c77b7a39d..5b5aa8bfc5b74 100644
--- a/pkgs/development/python-modules/nestedtext/default.nix
+++ b/pkgs/development/python-modules/nestedtext/default.nix
@@ -1,27 +1,68 @@
-{ lib, buildPythonPackage, fetchFromGitHub
+{ lib
+, buildPythonPackage
+, docopt
+, fetchFromGitHub
+, flitBuildHook
+, hypothesis
 , inform
+, nestedtext
 , pytestCheckHook
-, docopt
-, natsort
+, pythonOlder
+, quantiphy
 , voluptuous
 }:
 
 buildPythonPackage rec {
   pname = "nestedtext";
-  version = "1.2";
+  version = "3.5";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "KenKundert";
     repo = "nestedtext";
-    rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "1dwks5apghg29aj90nc4qm0chk195jh881297zr1wk7mqd2n159y";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-RGCcrGsDkBhThuUZd2LuuyXG9r1S7iOA75HYRxkwUrU=";
   };
 
-  propagatedBuildInputs = [ inform ];
+  nativeBuildInputs = [
+    flitBuildHook
+  ];
+
+  propagatedBuildInputs = [
+    inform
+  ];
+
+  nativeCheckInputs = [
+    docopt
+    hypothesis
+    quantiphy
+    pytestCheckHook
+    voluptuous
+  ];
+
+  # Tests depend on quantiphy. To avoid infinite recursion, tests are only
+  # enabled when building passthru.tests.
+  doCheck = false;
+
+  pytestFlagsArray = [
+    # Avoids an ImportMismatchError.
+    "--ignore=build"
+  ];
+
+  disabledTestPaths = [
+    # Examples are prefixed with test_
+    "examples/"
+  ];
+
+  passthru.tests = {
+    runTests = nestedtext.overrideAttrs (_: { doCheck = true; });
+  };
 
-  nativeCheckInputs = [ pytestCheckHook docopt natsort voluptuous ];
-  pytestFlagsArray = [ "--ignore=build" ]; # Avoids an ImportMismatchError.
+  pythonImportsCheck = [
+    "nestedtext"
+  ];
 
   meta = with lib; {
     description = "A human friendly data format";
@@ -37,6 +78,7 @@ buildPythonPackage rec {
       non-programmers.
     '';
     homepage = "https://nestedtext.org";
+    changelog = "https://github.com/KenKundert/nestedtext/blob/v${version}/doc/releases.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ jeremyschlatter ];
   };
diff --git a/pkgs/development/python-modules/nettigo-air-monitor/default.nix b/pkgs/development/python-modules/nettigo-air-monitor/default.nix
index 71cd3b9a260df..58f65b6e3d46d 100644
--- a/pkgs/development/python-modules/nettigo-air-monitor/default.nix
+++ b/pkgs/development/python-modules/nettigo-air-monitor/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "nettigo-air-monitor";
-  version = "1.6.0";
+  version = "2.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -22,8 +22,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "bieniu";
     repo = pname;
-    rev = version;
-    hash = "sha256-86YEpn3rI6Y4v0pcNk+/4tHCUzXpXZN5xwV9M/1gZ8U=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-6pLdaBeyTIrsAzkr83Iywta+K4Vx3nt0QyL8opHNwV8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nibe/default.nix b/pkgs/development/python-modules/nibe/default.nix
index 825f89354e56a..ee51cdd7cd505 100644
--- a/pkgs/development/python-modules/nibe/default.nix
+++ b/pkgs/development/python-modules/nibe/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "nibe";
-  version = "1.6.0";
+  version = "2.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "yozik04";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-6pQsVGb26FpoV2LgOrs+Cfq2rATRqbljrVJ+NsZUSuc=";
+    hash = "sha256-e5rKtVFSlB4sFBrBHKrZmHq/sJEL9VZejSpUgeCwCzw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/nix-prefetch-github/default.nix b/pkgs/development/python-modules/nix-prefetch-github/default.nix
index 25ec70ca9d83d..7746444fd30ea 100644
--- a/pkgs/development/python-modules/nix-prefetch-github/default.nix
+++ b/pkgs/development/python-modules/nix-prefetch-github/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "nix-prefetch-github";
-  version = "6.0.0";
+  version = "6.0.1";
 
   disabled = pythonOlder "3.8";
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "seppeljordan";
     repo = "nix-prefetch-github";
     rev = "v${version}";
-    sha256 = "YobBihNPbqYYWhe3x0p+BIlEK8R62s/dDFWUzP7fCTI=";
+    sha256 = "tvoDSqg4g517c1w0VcsVm3r4mBFG3RHaOTAJAv1ooc4=";
   };
 
   nativeCheckInputs = [ unittestCheckHook git which ];
diff --git a/pkgs/development/python-modules/nocaselist/default.nix b/pkgs/development/python-modules/nocaselist/default.nix
index a1c8909e5fa47..ef9d5e904d330 100644
--- a/pkgs/development/python-modules/nocaselist/default.nix
+++ b/pkgs/development/python-modules/nocaselist/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "nocaselist";
-  version = "1.1.0";
+  version = "1.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-qZOEq8cAxAnp3vcUN2PhjfrTMv3/fjD64fbRows3J3I=";
+    sha256 = "sha256-UnKyMuCCRmlqsm/g670ouJidrJ7lcytQJklQMjtRPSM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nuheat/default.nix b/pkgs/development/python-modules/nuheat/default.nix
new file mode 100644
index 0000000000000..97607ceab3dcf
--- /dev/null
+++ b/pkgs/development/python-modules/nuheat/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, parameterized
+, pytestCheckHook
+, pythonOlder
+, requests
+, responses
+}:
+
+buildPythonPackage rec {
+  pname = "nuheat";
+  version = "1.0.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "broox";
+    repo = "python-nuheat";
+    rev = "refs/tags/${version}";
+    hash = "sha256-EsPuwILfKc1Bpvu0Qos7yooC3dBaqf46lWhiSZdu3sc=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  nativeCheckInputs = [
+    mock
+    parameterized
+    pytestCheckHook
+    responses
+  ];
+
+  pythonImportsCheck = [
+    "nuheat"
+  ];
+
+  meta = with lib; {
+    description = "Library to interact with NuHeat Signature and Mapei Mapeheat radiant floor thermostats";
+    homepage = "https://github.com/broox/python-nuheat";
+    changelog = "https://github.com/broox/python-nuheat/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix
index 4e52fc4dcd1da..ff26bb6ad0f53 100644
--- a/pkgs/development/python-modules/nuitka/default.nix
+++ b/pkgs/development/python-modules/nuitka/default.nix
@@ -10,15 +10,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.1.5";
+  version = "1.4.8";
   pname = "Nuitka";
 
-  # Latest version is not yet on PyPi
   src = fetchFromGitHub {
     owner = "Nuitka";
     repo = "Nuitka";
     rev = version;
-    sha256 = "0wgcl860acbxnq8q9hck147yhxz8pcbqhv9glracfnrsd2qkpgpp";
+    hash = "sha256-8eWOcxATVS866nlN39b2VU1CuXAfcn0yQsDweHS2yDU=";
   };
 
   nativeCheckInputs = [ vmprof pyqt4 ];
diff --git a/pkgs/development/python-modules/okta/default.nix b/pkgs/development/python-modules/okta/default.nix
new file mode 100644
index 0000000000000..13c2be3a809c2
--- /dev/null
+++ b/pkgs/development/python-modules/okta/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+# install requirements
+, pycryptodome
+, yarl
+, flatdict
+, python-jose
+, aenum
+, aiohttp
+, pydash
+, xmltodict
+, pyyaml
+# test requirements
+, pytestCheckHook
+, pytest-recording
+, pytest-asyncio
+, pytest-mock
+, pyfakefs
+}:
+
+buildPythonPackage rec {
+  pname = "okta";
+  version = "2.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-yIVJoKX9b9Y7Ydl28twHxgPbUa58LJ12Oz3tvpU7CAc=";
+  };
+
+  propagatedBuildInputs = [
+    pycryptodome
+    yarl
+    flatdict
+    python-jose
+    aenum
+    aiohttp
+    pydash
+    xmltodict
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-asyncio
+    pytest-mock
+    pytest-recording
+    pyfakefs
+  ];
+
+  pytestFlagsArray = [ "tests/" ];
+
+  disabledTests = [
+    "test_client_raise_exception"
+  ];
+
+  pythonImportsCheck = [
+    "okta"
+    "okta.cache"
+    "okta.client"
+    "okta.exceptions"
+    "okta.http_client"
+    "okta.models"
+    "okta.request_executor"
+  ];
+
+  meta = with lib; {
+    description = "Python SDK for the Okta Management API";
+    homepage = "https://github.com/okta/okta-sdk-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ dennajort ];
+  };
+}
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index ede1a7a3d84fa..fea465286a6d2 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "0.26.5";
+  version = "0.27.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7.1";
@@ -31,8 +31,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "openai";
     repo = "openai-python";
-    rev = "v${version}";
-    hash = "sha256-eKU+WRFf7f1yH63vcoQ9dVeqhJXBqMJGpk/9AoEgR0M=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-GGwRx5yF/xdtnJiKF1junxuebaaBkGhx+DR4pqChcS4=";
   };
 
   propagatedBuildInputs = [
@@ -91,6 +91,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python client library for the OpenAI API";
     homepage = "https://github.com/openai/openai-python";
+    changelog = "https://github.com/openai/openai-python/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ malo ];
   };
diff --git a/pkgs/development/python-modules/openaiauth/default.nix b/pkgs/development/python-modules/openaiauth/default.nix
new file mode 100644
index 0000000000000..bfe13d57dd9e4
--- /dev/null
+++ b/pkgs/development/python-modules/openaiauth/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "openaiauth";
+  version = "0.3.2";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "OpenAIAuth";
+    hash = "sha256-CPcBgGvxRO677EdPI3lNtJXkCW7el6N6N2GeaDo5ApU=";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "OpenAIAuth"
+  ];
+
+  meta = with lib; {
+    description = "A Python library for authenticating with the OpenAI API";
+    license = licenses.mit;
+    maintainers = with maintainers; [ realsnick ];
+    homepage = "https://github.com/acheong08/OpenAIAuth";
+    changelog = "https://github.com/acheong08/OpenAIAuth/releases/tag/${version}";
+  };
+}
diff --git a/pkgs/development/python-modules/openapi-core/default.nix b/pkgs/development/python-modules/openapi-core/default.nix
index 496dceeaab487..e024138b4cfbb 100644
--- a/pkgs/development/python-modules/openapi-core/default.nix
+++ b/pkgs/development/python-modules/openapi-core/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "openapi-core";
-  version = "0.16.5";
+  version = "0.17.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     owner = "p1c2u";
     repo = "openapi-core";
     rev = "refs/tags/${version}";
-    hash = "sha256-xXSZ9qxjmeIyYIWQubJbJxkXUdOu/WSSBddIWsVaH8k=";
+    hash = "sha256-LxCaP8r+89UmV/VfqtA/mWV/CXd6ZfRQnNnM0Jde7ko=";
   };
 
   postPatch = ''
@@ -84,11 +84,7 @@ buildPythonPackage rec {
     pytestCheckHook
     responses
     webob
-  ] ++ passthru.optional-dependencies.flask
-  ++ passthru.optional-dependencies.falcon
-  ++ passthru.optional-dependencies.django
-  ++ passthru.optional-dependencies.starlette
-  ++ passthru.optional-dependencies.requests;
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   disabledTestPaths = [
     # Requires secrets and additional configuration
diff --git a/pkgs/development/python-modules/openapi-schema-validator/default.nix b/pkgs/development/python-modules/openapi-schema-validator/default.nix
index d3c121ed94e79..456f57e3309d3 100644
--- a/pkgs/development/python-modules/openapi-schema-validator/default.nix
+++ b/pkgs/development/python-modules/openapi-schema-validator/default.nix
@@ -5,31 +5,38 @@
 , pytestCheckHook
 , isodate
 , jsonschema
-, pytest-cov
 , rfc3339-validator
-, six
-, strict-rfc3339
 }:
 
 buildPythonPackage rec {
   pname = "openapi-schema-validator";
-  version = "0.3.4";
+  version = "0.4.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "p1c2u";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-0nKAeqZCfzYFsV18BDsSws/54FmRoy7lQSHguI6m3Sc=";
+    hash = "sha256-rp0Oq5WWPpna5rHrq/lfRNxjK5/FLgPZ5uzVfDT/YiI=";
   };
 
+  postPatch = ''
+    sed -i "/--cov/d" pyproject.toml
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [ isodate jsonschema six strict-rfc3339 rfc3339-validator ];
+  propagatedBuildInputs = [
+    jsonschema
+    rfc3339-validator
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-cov ];
   pythonImportsCheck = [ "openapi_schema_validator" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/openapi-spec-validator/default.nix b/pkgs/development/python-modules/openapi-spec-validator/default.nix
index 371661e2feb85..296bcd7b99321 100644
--- a/pkgs/development/python-modules/openapi-spec-validator/default.nix
+++ b/pkgs/development/python-modules/openapi-spec-validator/default.nix
@@ -1,8 +1,8 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchFromGitHub
 , poetry-core
-, setuptools
 
 # propagates
 , importlib-resources
@@ -22,29 +22,30 @@
 
 buildPythonPackage rec {
   pname = "openapi-spec-validator";
-  version = "0.5.1";
+  version = "0.5.5";
   format = "pyproject";
 
+  disabled = pythonOlder "3.7";
+
   # no tests via pypi sdist
   src = fetchFromGitHub {
     owner = "p1c2u";
     repo = pname;
     rev = version;
-    hash = "sha256-8VhD57dNG0XrPUdcq39GEfHUAgdDwJ8nv+Lp57OpTLg=";
+    hash = "sha256-t7u0p6V2woqIFsqywv7k5s5pbbnmcn45YnlFWH1PEi4=";
   };
 
   nativeBuildInputs = [
     poetry-core
-    setuptools
   ];
 
   propagatedBuildInputs = [
-    importlib-resources
     jsonschema
     jsonschema-spec
     lazy-object-proxy
     openapi-schema-validator
-    pyyaml
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    importlib-resources
   ];
 
   passthru.optional-dependencies.requests = [
diff --git a/pkgs/development/python-modules/ospd/default.nix b/pkgs/development/python-modules/ospd/default.nix
index 4525d455757cf..a9e6ba10d9811 100644
--- a/pkgs/development/python-modules/ospd/default.nix
+++ b/pkgs/development/python-modules/ospd/default.nix
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "greenbone";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-dZgs+G2vJQIKnN9xHcNeNViG7mOIdKb+Ms2AKE+FC4M=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-dZgs+G2vJQIKnN9xHcNeNViG7mOIdKb+Ms2AKE+FC4M=";
   };
 
   propagatedBuildInputs = [
@@ -44,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Framework for vulnerability scanners which support OSP";
     homepage = "https://github.com/greenbone/ospd";
+    changelog = "https://github.com/greenbone/ospd/releases/tag/v${version}";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/parametrize-from-file/default.nix b/pkgs/development/python-modules/parametrize-from-file/default.nix
index c020992bee221..38370a1c805a0 100644
--- a/pkgs/development/python-modules/parametrize-from-file/default.nix
+++ b/pkgs/development/python-modules/parametrize-from-file/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "parametrize_from_file";
-    sha256 = "1c91j869n2vplvhawxc1sv8km8l53bhlxhhms43fyjsqvy351v5j";
+    hash = "sha256-suxQht9YS+8G0RXCTuEahaI60daBda7gpncLmwySIbE=";
   };
 
   patches = [
@@ -54,7 +54,14 @@ buildPythonPackage rec {
     toml
   ];
 
-  pythonImportsCheck = [ "parametrize_from_file" ];
+  pythonImportsCheck = [
+    "parametrize_from_file"
+  ];
+
+  disabledTests = [
+    # https://github.com/kalekundert/parametrize_from_file/issues/19
+    "test_load_suite_params_err"
+  ];
 
   meta = with lib; {
     description = "Read unit test parameters from config files";
diff --git a/pkgs/development/python-modules/parsimonious/default.nix b/pkgs/development/python-modules/parsimonious/default.nix
index 5a51270e20909..b156321cefece 100644
--- a/pkgs/development/python-modules/parsimonious/default.nix
+++ b/pkgs/development/python-modules/parsimonious/default.nix
@@ -26,6 +26,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # test_benchmarks.py tests are actually benchmarks and may fail due to
+    # something being unexpectedly slow on a heavily loaded build machine
+    "test_lists_vs_dicts"
+    "test_call_vs_inline"
+    "test_startswith_vs_regex"
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace "regex>=2022.3.15" "regex"
diff --git a/pkgs/development/python-modules/peaqevcore/default.nix b/pkgs/development/python-modules/peaqevcore/default.nix
index 3333331e85f6c..f4c93a252bcff 100644
--- a/pkgs/development/python-modules/peaqevcore/default.nix
+++ b/pkgs/development/python-modules/peaqevcore/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "peaqevcore";
-  version = "12.2.1";
+  version = "13.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WOuKGVrNZzvY7F0Mvj3MjSdTu47c5Y11ySe1qorzlWE=";
+    hash = "sha256-2V0+F0S2i7paBDN8FmsT1wV4qdJ4XmkOyZ3EDfyjGks=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pglast/default.nix b/pkgs/development/python-modules/pglast/default.nix
index 7c0f38b525d6b..81445ebdedede 100644
--- a/pkgs/development/python-modules/pglast/default.nix
+++ b/pkgs/development/python-modules/pglast/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "5.0";
+  version = "5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bR/e5pZCrnMCUt9zEszI0aVlqezTzwR3DIdpXv/6qGM=";
+    hash = "sha256-fHWJWgy/Ven5m2Cf81rG/ZKmFFWiLJsIPVxFe+rr+ms=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pint-pandas/default.nix b/pkgs/development/python-modules/pint-pandas/default.nix
index d2f5f66c0b3f3..18e497f00f411 100644
--- a/pkgs/development/python-modules/pint-pandas/default.nix
+++ b/pkgs/development/python-modules/pint-pandas/default.nix
@@ -1,34 +1,29 @@
 { stdenv
 , lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , fetchpatch
-, setuptools-scm
+, setuptools
 , pint
 , pandas
 , pytestCheckHook
 }:
 
-buildPythonPackage rec {
+buildPythonPackage {
   pname = "pint-pandas";
-  version = "0.2";
+  # Latest release contains bugs and failing tests.
+  version = "unstable-2022-11-24";
+  format = "pyproject";
 
-  src = fetchPypi {
-    pname = "Pint-Pandas";
-    inherit version;
-    sha256 = "sha256-b2DS6ArBAuD5St25IG4PbMpe5C8Lf4kw2MeYAC5B+oc=";
+  src = fetchFromGitHub {
+    owner = "hgrecco";
+    repo = "pint-pandas";
+    rev = "c58a7fcf9123eb65f5e78845077b205e20279b9d";
+    hash = "sha256-gMZNJSJxtSZvgU4o71ws5ZA6tgD2M5c5oOrn62DRyMI=";
   };
 
-  patches = [
-    # Fixes a failing test, see: https://github.com/hgrecco/pint-pandas/issues/107
-    (fetchpatch{
-      url = "https://github.com/hgrecco/pint-pandas/commit/4c31e25609af968665ee60d019b9b5366f328680.patch";
-      sha256 = "vIT0LI4S73D4MBfGI8vtCZAM+Zb4PZ4E3xfpGKNyA4I=";
-    })
-  ];
-
   nativeBuildInputs = [
-    setuptools-scm
+    setuptools
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pontos/default.nix b/pkgs/development/python-modules/pontos/default.nix
index e828149b9cddb..deb91a2b1ef42 100644
--- a/pkgs/development/python-modules/pontos/default.nix
+++ b/pkgs/development/python-modules/pontos/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pontos";
-  version = "23.2.10";
+  version = "23.3.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-sXCBuN6H5/7cyOW7LuP5cJ5NixN3KWHJyJudT24rpYg=";
+    hash = "sha256-Wd02dlRIRBBJ2cKNxIZxOoWjp1aPxqmc37tvUbc/pJk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/prance/default.nix b/pkgs/development/python-modules/prance/default.nix
index 9f730b2f39f93..25ceb1259c5f6 100644
--- a/pkgs/development/python-modules/prance/default.nix
+++ b/pkgs/development/python-modules/prance/default.nix
@@ -1,54 +1,39 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchFromGitHub
-, fetchpatch
 , chardet
+, click
+, flex
+, packaging
+, pyicu
 , requests
 , ruamel-yaml
 , setuptools-scm
 , six
-, semver
+, swagger-spec-validator
 , pytestCheckHook
 , openapi-spec-validator
 }:
 
 buildPythonPackage rec {
   pname = "prance";
-  version = "0.21.8.0";
+  version = "0.22.02.22.0";
   format = "pyproject";
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "RonnyPfannschmidt";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-kGANMHfWwhW3ZBw2ZVCJZR/bV2EPhcydMKhDeDTVwcQ=";
+    hash = "sha256-NtIbZp34IcMYJzaNQVL9GLdNS3NYOCRoWS1wGg/gLVA=";
   };
 
-  patches = [
-    # Fix for openapi-spec-validator 0.5.0+:
-    # https://github.com/RonnyPfannschmidt/prance/pull/132
-    (fetchpatch {
-      name = "1-openapi-spec-validator-upgrade.patch";
-      url = "https://github.com/RonnyPfannschmidt/prance/commit/55503c9b12b685863c932ededac996369e7d288a.patch";
-      hash = "sha256-7SOgFsk2aaaaAYS8WJ9axqQFyEprurn6Zn12NcdQ9Bg=";
-    })
-    (fetchpatch {
-      name = "2-openapi-spec-validator-upgrade.patch";
-      url = "https://github.com/RonnyPfannschmidt/prance/commit/7e59cc69c6c62fd04875105773d9d220bb58fea6.patch";
-      hash = "sha256-j6vmY3NqDswp7v9682H+/MxMGtFObMxUeL9Wbiv9hYw=";
-    })
-    (fetchpatch {
-      name = "3-openapi-spec-validator-upgrade.patch";
-      url = "https://github.com/RonnyPfannschmidt/prance/commit/7e575781d83845d7ea0c2eff57644df9b465c7af.patch";
-      hash = "sha256-rexKoQ+TH3QmP20c3bA+7BLMLc+fkVhn7xsq+gle1Aw=";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "--cov=prance --cov-report=term-missing --cov-fail-under=90" "" \
-      --replace "chardet>=3.0,<5.0" "chardet"
+      --replace "--cov=prance --cov-report=term-missing --cov-fail-under=90" ""
   '';
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -59,27 +44,37 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     chardet
+    packaging
     requests
     ruamel-yaml
     six
-    semver
   ];
 
+  passthru.optional-dependencies = {
+    cli = [ click ];
+    flex = [ flex ];
+    icu = [ pyicu ];
+    osv = [ openapi-spec-validator ];
+    ssv = [ swagger-spec-validator ];
+  };
+
   nativeCheckInputs = [
     pytestCheckHook
-    openapi-spec-validator
-  ];
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   # Disable tests that require network
   disabledTestPaths = [
     "tests/test_convert.py"
   ];
   disabledTests = [
+    "test_convert_defaults"
+    "test_convert_output"
     "test_fetch_url_http"
   ];
   pythonImportsCheck = [ "prance" ];
 
   meta = with lib; {
+    changelog = "https://github.com/RonnyPfannschmidt/prance/blob/${src.rev}/CHANGES.rst";
     description = "Resolving Swagger/OpenAPI 2.0 and 3.0.0 Parser";
     homepage = "https://github.com/RonnyPfannschmidt/prance";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/psrpcore/default.nix b/pkgs/development/python-modules/psrpcore/default.nix
index fc0517f0df847..8608c19c8dcdb 100644
--- a/pkgs/development/python-modules/psrpcore/default.nix
+++ b/pkgs/development/python-modules/psrpcore/default.nix
@@ -3,14 +3,13 @@
 , cryptography
 , fetchFromGitHub
 , pytestCheckHook
-, pythonAtLeast
 , pythonOlder
 , xmldiff
 }:
 
 buildPythonPackage rec {
   pname = "psrpcore";
-  version = "0.2.1";
+  version = "0.2.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +18,7 @@ buildPythonPackage rec {
     owner = "jborean93";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-KMSyqXKhNH+i9Y0Mx3DHCwJZOkl4Va2n0zu0TEitslU=";
+    hash = "sha256-6d5HQJEH/x+V0rpmQkprMlH1n151KyUF6d4tM9W5TFs=";
   };
 
   propagatedBuildInputs = [
@@ -35,13 +34,6 @@ buildPythonPackage rec {
     "psrpcore"
   ];
 
-  disabledTests = lib.optionals (pythonAtLeast "3.11") [
-    # https://github.com/jborean93/psrpcore/issues/22
-    "test_remote_stream_options"
-    "test_ps_flags"
-  ];
-
-
   meta = with lib; {
     description = "Library for the PowerShell Remoting Protocol (PSRP)";
     homepage = "https://github.com/jborean93/psrpcore";
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
new file mode 100644
index 0000000000000..91eafd150dd6d
--- /dev/null
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pandoc
+, pytestCheckHook
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "publicsuffixlist";
+  version = "0.9.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-9iQZb9v8aV7hg6UqLfxWGByPWb8mn+14vktIvCRX4hg=";
+  };
+
+  passthru.optional-dependencies = {
+    update = [
+      requests
+    ];
+    readme = [
+      pandoc
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "publicsuffixlist"
+  ];
+
+  pytestFlagsArray = [
+    "publicsuffixlist/test.py"
+  ];
+
+  meta = with lib; {
+    description = "Public Suffix List parser implementation";
+    homepage = "https://github.com/ko-zu/psl";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pulumi/default.nix b/pkgs/development/python-modules/pulumi/default.nix
index b0d11e59d9640..68e5391b96915 100644
--- a/pkgs/development/python-modules/pulumi/default.nix
+++ b/pkgs/development/python-modules/pulumi/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     cp ../../README.md .
     substituteInPlace setup.py \
       --replace "3.0.0" "${version}" \
-      --replace "grpcio==1.50" "grpcio"
+      --replace "grpcio==1.51.3" "grpcio"
   '';
 
   # Allow local networking in tests on Darwin
diff --git a/pkgs/development/python-modules/py-dormakaba-dkey/default.nix b/pkgs/development/python-modules/py-dormakaba-dkey/default.nix
new file mode 100644
index 0000000000000..6c70ad8861c7b
--- /dev/null
+++ b/pkgs/development/python-modules/py-dormakaba-dkey/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, bleak
+, bleak-retry-connector
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "py-dormakaba-dkey";
+  version = "1.0.4";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "emontnemery";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    hash = "sha256-1jIsKQa27XNVievU02jjanRWFtJDYsHolgPBab6qpM0=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    bleak
+    bleak-retry-connector
+    cryptography
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "py_dormakaba_dkey"
+  ];
+
+  meta = with lib; {
+    description = "Library to interact with a Dormakaba dkey lock";
+    homepage = "https://github.com/emontnemery/py-dormakaba-dkey";
+    changelog = "https://github.com/emontnemery/py-dormakaba-dkey/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/py_stringmatching/default.nix b/pkgs/development/python-modules/py_stringmatching/default.nix
index a6d4bc48e8442..8c49de1e5287c 100644
--- a/pkgs/development/python-modules/py_stringmatching/default.nix
+++ b/pkgs/development/python-modules/py_stringmatching/default.nix
@@ -1,27 +1,42 @@
 { lib
 , buildPythonPackage
+, fetchPypi
+, nose
 , numpy
+, pythonOlder
 , six
-, nose
-, fetchPypi
 }:
 
 buildPythonPackage rec {
-  pname = "py_stringmatching";
-  version = "0.4.2";
+  pname = "py-stringmatching";
+  version = "0.4.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "c87f62698fba1612a18f8f44bd57f0c4e70aac2d7ca6dfb6ed46dabd2194453c";
+    pname = "py_stringmatching";
+    inherit version;
+    sha256 = "sha256-khubsWOzEN80HDOCORMgT3sMqfajGfW0UUCDAL03je4=";
   };
 
-  nativeCheckInputs = [ nose ];
+  propagatedBuildInputs = [
+    numpy
+    six
+  ];
+
+  nativeCheckInputs = [
+    nose
+  ];
 
-  propagatedBuildInputs = [ numpy six ];
+  pythonImportsCheck = [
+    "py_stringmatching"
+  ];
 
   meta = with lib; {
-    description = "A Python string matching library including string tokenizers and string similarity measures";
-    homepage =  "https://sites.google.com/site/anhaidgroup/projects/magellan/py_stringmatching";
+    description = "Python string matching library including string tokenizers and string similarity measures";
+    homepage = "https://github.com/anhaidgroup/py_stringmatching";
+    changelog = "https://github.com/anhaidgroup/py_stringmatching/blob/v${version}/CHANGES.txt";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ixxie ];
   };
diff --git a/pkgs/development/python-modules/pyairnow/default.nix b/pkgs/development/python-modules/pyairnow/default.nix
index 04206796d4d6e..e398643aa510b 100644
--- a/pkgs/development/python-modules/pyairnow/default.nix
+++ b/pkgs/development/python-modules/pyairnow/default.nix
@@ -3,7 +3,6 @@
 , aioresponses
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pytest-aiohttp
 , poetry-core
 , pytest-asyncio
@@ -13,24 +12,16 @@
 
 buildPythonPackage rec {
   pname = "pyairnow";
-  version = "1.1.0";
+  version = "1.2.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "asymworks";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1hkpfl8rdwyzqrr1drqlmcw3xpv3pi1jf19h1divspbzwarqxs1c";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-aab+3xrEiCjysa+DzXWelQwz8V2tr74y8v0NpDZiuTk=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "switch-to-poetry-core.patch";
-      url = "https://github.com/asymworks/pyairnow/commit/f7a01733a41c648563fc2fe4b559f61ef08b9153.patch";
-      hash = "sha256-lcHnFP3bwkPTi9Zq1dZtShLKyXcxO0XoDF+PgjbWOqs=";
-    })
-  ];
-
   nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/pybalboa/default.nix b/pkgs/development/python-modules/pybalboa/default.nix
index 3c290b8439416..8b4d0b7195658 100644
--- a/pkgs/development/python-modules/pybalboa/default.nix
+++ b/pkgs/development/python-modules/pybalboa/default.nix
@@ -2,22 +2,27 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, poetry-core
 }:
 
 buildPythonPackage rec {
   pname = "pybalboa";
-  version = "0.13";
-  format = "setuptools";
+  version = "1.0.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "garbled1";
     repo = pname;
-    rev = version;
-    sha256 = "0aw5jxpsvzyx05y1mg8d63lxx1i607yb6x19n9jil5wfis95m8pd";
+    rev = "refs/tags/${version}";
+    hash = "sha256-7vjdRGnEnMf32pZwoKRxX16hxkyf0CXlncpbBJMQtfI=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   # Project has no tests
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/pybigwig/default.nix b/pkgs/development/python-modules/pybigwig/default.nix
index cb23c2a5732b4..3101066ff2518 100644
--- a/pkgs/development/python-modules/pybigwig/default.nix
+++ b/pkgs/development/python-modules/pybigwig/default.nix
@@ -1,32 +1,60 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, pytest
+, fetchFromGitHub
 , numpy
+, pytestCheckHook
+, pythonOlder
 , zlib
 }:
 
 buildPythonPackage rec {
-  pname = "pyBigWig";
-  version = "0.3.18";
+  pname = "pybigwig";
+  version = "0.3.20";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "4c2a8c571b4100ad7c4c318c142eb48558646be52aaab28215a70426f5be31bc";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "deeptools";
+    repo = "pyBigWig";
+    rev = "refs/tags/${version}";
+    hash = "sha256-uYKxM0HOG4fus5geBFjbfbv6G1kDvMaAwhk0w/e1YII=";
   };
 
-  buildInputs = [ zlib ];
+  buildInputs = [
+    zlib
+  ];
+
+  nativeCheckInputs = [
+    numpy
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "pyBigWig"
+  ];
 
-  nativeCheckInputs = [ numpy pytest ];
+  pytestFlagsArray = [
+    "pyBigWigTest/test*.py"
+  ];
+
+  disabledTests = [
+    # Test file is donwloaded from GitHub
+    "testAll"
+    "testBigBed"
+    "testFoo"
+    "testNumpyValues"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/deeptools/pyBigWig";
     description = "File access to bigBed files, and read and write access to bigWig files";
     longDescription = ''
-      A python extension, written in C, for quick access to bigBed files
+      A Python extension, written in C, for quick access to bigBed files
       and access to and creation of bigWig files. This extension uses
       libBigWig for local and remote file access.
     '';
+    homepage = "https://github.com/deeptools/pyBigWig";
+    changelog = "https://github.com/deeptools/pyBigWig/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ scalavision ];
   };
diff --git a/pkgs/development/python-modules/pybravia/default.nix b/pkgs/development/python-modules/pybravia/default.nix
index 92fe348368515..07ecdb0bc7e6e 100644
--- a/pkgs/development/python-modules/pybravia/default.nix
+++ b/pkgs/development/python-modules/pybravia/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pybravia";
-  version = "0.3.1";
+  version = "0.3.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Drafteed";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-aY+G4e2uq2yWUkJ9CXnOhc5S57kkMB36N/x+iQDCivo=";
+    hash = "sha256-4TeUPJlNlmZxf1Tw62m5KjoTNHGt6wCSjKixkJBeGyw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index 93af15c4e0d9e..1a038fe7de8c4 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -26,6 +26,7 @@
 , ujson
 , orjson
 , hypothesis
+, libxcrypt
 }:
 
 buildPythonPackage rec {
@@ -51,6 +52,10 @@ buildPythonPackage rec {
     sed -i '/flake8/ d' Makefile
   '';
 
+  buildInputs = lib.optionals (pythonOlder "3.9") [
+    libxcrypt
+  ];
+
   nativeBuildInputs = [
     cython
   ] ++ lib.optionals withDocs [
diff --git a/pkgs/development/python-modules/pydata-sphinx-theme/default.nix b/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
index b9a9d9d682cfb..d9cb175946ca6 100644
--- a/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
+++ b/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pydata-sphinx-theme";
-  version = "0.13.0rc6";
+  version = "0.13.1";
 
   format = "wheel";
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     dist = "py3";
     python = "py3";
     pname = "pydata_sphinx_theme";
-    sha256 = "sha256-0JrTt5ZPbaEtqn9KbbAFfDjU3/6wAzbcbdAouv5o02I=";
+    sha256 = "sha256-zinB3nlh1hbfol9MOpYZgY1LstSpmF7QeDZ68pT7zMI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pydeconz/default.nix b/pkgs/development/python-modules/pydeconz/default.nix
index 3ccb8960f5ef8..a0d41e0a56a82 100644
--- a/pkgs/development/python-modules/pydeconz/default.nix
+++ b/pkgs/development/python-modules/pydeconz/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pydeconz";
-  version = "108";
+  version = "110";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Kane610";
     repo = "deconz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CPFkfVwvk0AO/DoE1Nj1jLdLvuOpRzndmRK/M6SSGtk=";
+    hash = "sha256-2eHKFq+urzJS3K55O0hca0h4ElowJZD6nIkYkzyBFCM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyexploitdb/default.nix b/pkgs/development/python-modules/pyexploitdb/default.nix
new file mode 100644
index 0000000000000..c59205aa3f1a3
--- /dev/null
+++ b/pkgs/development/python-modules/pyexploitdb/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, gitpython
+, pytestCheckHook
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pyexploitdb";
+  version = "0.2.9";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    pname = "pyExploitDb";
+    inherit version;
+    hash = "sha256-q16YB0lLlw9nXohcT20l41Bv40CqshWzE8nVBBSEppE=";
+  };
+
+  propagatedBuildInputs = [
+    gitpython
+    requests
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pyExploitDb"
+  ];
+
+  meta = with lib; {
+    description = "Library to fetch the most recent exploit-database";
+    homepage = "https://github.com/GoVanguard/pyExploitDb";
+    changelog = "https://github.com/GoVanguard/pyExploitDb/blob/master/Changelog.txt";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyfibaro/default.nix b/pkgs/development/python-modules/pyfibaro/default.nix
index 759fe47221b7f..2cb78380c8fee 100644
--- a/pkgs/development/python-modules/pyfibaro/default.nix
+++ b/pkgs/development/python-modules/pyfibaro/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pyfibaro";
-  version = "0.6.8";
+  version = "0.6.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "rappenze";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-2BDVCukm2y4rZyIWozRWJ+pY2bI2A7Vpitjd8jSJoWQ=";
+    hash = "sha256-vyp+O5Oj1/OYALGb+ioXeFdlDveR8j5M9Z40QTC+sj4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyfritzhome/default.nix b/pkgs/development/python-modules/pyfritzhome/default.nix
index b2baa51466718..2cc602050c155 100644
--- a/pkgs/development/python-modules/pyfritzhome/default.nix
+++ b/pkgs/development/python-modules/pyfritzhome/default.nix
@@ -1,24 +1,23 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pytestCheckHook
 , pythonOlder
 , requests
-, nose
-, mock
 }:
 
 buildPythonPackage rec {
   pname = "pyfritzhome";
-  version = "0.6.7";
+  version = "0.6.8";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "hthiery";
     repo = "python-fritzhome";
-    rev = version;
-    hash = "sha256-cRG+Dm3KG6no3/OQCZkvISW1yE5azdDVTa5oTV1sRpk=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-MIWRBwqVuS1iEuWxsE1yuGS2zHYVgnH2G4JJk7Yct6s=";
   };
 
   propagatedBuildInputs = [
@@ -26,14 +25,9 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    mock
-    nose
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    nosetests
-  '';
-
   pythonImportsCheck = [
     "pyfritzhome"
   ];
diff --git a/pkgs/development/python-modules/pygls/default.nix b/pkgs/development/python-modules/pygls/default.nix
index 199082cae15e9..5560e855d87f4 100644
--- a/pkgs/development/python-modules/pygls/default.nix
+++ b/pkgs/development/python-modules/pygls/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pygls";
-  version = "1.0.0";
+  version = "1.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "openlawlibrary";
     repo = "pygls";
-    rev = "v${version}";
-    hash = "sha256-31J4+giK1RDBS52Q/Ia3Y/Zak7fp7gRVTQ7US/eFjtM=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ovm897Vu6HRziGee3NioM1BA65mLe3F5Z2k0E+A35Gs=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/pyinsteon/default.nix b/pkgs/development/python-modules/pyinsteon/default.nix
index 70f76c129f022..e7e9747d7f85d 100644
--- a/pkgs/development/python-modules/pyinsteon/default.nix
+++ b/pkgs/development/python-modules/pyinsteon/default.nix
@@ -7,17 +7,16 @@
 , pypubsub
 , pyserial
 , pyserial-asyncio
-, pytest-asyncio
-, pytest-timeout
 , pytestCheckHook
 , pythonOlder
-, pyyaml
+, setuptools
+, voluptuous
 }:
 
 buildPythonPackage rec {
   pname = "pyinsteon";
-  version = "1.2.0";
-  format = "setuptools";
+  version = "1.3.4";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
@@ -25,29 +24,27 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-PMjvic+K/m7beavlZvGhJcizSNCzLPZYLm3P2V9EPLs=";
+    hash = "sha256-P/5kCXmUWQ/2yvzu/Pr0XBY8zm3fMMyoapGmdtRmxXo=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiofiles
     aiohttp
     pypubsub
     pyserial
     pyserial-asyncio
-    pyyaml
+    voluptuous
   ];
 
   nativeCheckInputs = [
     async_generator
-    pytest-asyncio
-    pytest-timeout
     pytestCheckHook
   ];
 
-  disabledTests = [
-    "test_results"
-  ];
-
   pythonImportsCheck = [
     "pyinsteon"
   ];
diff --git a/pkgs/development/python-modules/pykeyatome/default.nix b/pkgs/development/python-modules/pykeyatome/default.nix
index 0f6786c4c4cc6..363b078cad320 100644
--- a/pkgs/development/python-modules/pykeyatome/default.nix
+++ b/pkgs/development/python-modules/pykeyatome/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pykeyatome";
-  version = "2.1.1";
+  version = "2.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "jugla";
     repo = "pyKeyAtome";
     rev = "refs/tags/V${version}";
-    hash = "sha256-/HfWPrpW4NowFmdmU2teIiex1O03bHemnUdhOoEDRgc=";
+    hash = "sha256-zRXUjekawf2/zTSlXqHVB02dDkb6HbU4NN6UBgl2rtg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pymazda/default.nix b/pkgs/development/python-modules/pymazda/default.nix
index 7515c8fe9d2ab..186d5ed03ff08 100644
--- a/pkgs/development/python-modules/pymazda/default.nix
+++ b/pkgs/development/python-modules/pymazda/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pymazda";
-  version = "0.3.7";
+  version = "0.3.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1xreFjoHmdMirpxjVya30cw31fBaCPt877yqTr9By+A=";
+    sha256 = "sha256-CBPBmzghuc+kvBt50qmU+jHyUdGgLgNX3jcVm9CC7/Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pymorphy3/default.nix b/pkgs/development/python-modules/pymorphy3/default.nix
new file mode 100644
index 0000000000000..c4642b9065445
--- /dev/null
+++ b/pkgs/development/python-modules/pymorphy3/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, dawg-python
+, docopt
+, pytestCheckHook
+, pymorphy3-dicts-ru
+, pymorphy3-dicts-uk
+}:
+
+buildPythonPackage rec {
+  pname = "pymorphy3";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "no-plagiarism";
+    repo = pname;
+    rev = version;
+    hash = "sha256-5MXAYcjZPUrGf5G5e7Yml1SLukrZURA0TCv0GiP56rM=";
+  };
+
+  propagatedBuildInputs = [
+    dawg-python
+    docopt
+    pymorphy3-dicts-ru
+    pymorphy3-dicts-uk
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pymorphy3" ];
+
+  meta = with lib; {
+    description = "Morphological analyzer/inflection engine for Russian and Ukrainian";
+    homepage = "https://github.com/no-plagiarism/pymorphy3";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jboy ];
+  };
+}
diff --git a/pkgs/development/python-modules/pymorphy3/dicts-ru.nix b/pkgs/development/python-modules/pymorphy3/dicts-ru.nix
new file mode 100644
index 0000000000000..db32d092a30c2
--- /dev/null
+++ b/pkgs/development/python-modules/pymorphy3/dicts-ru.nix
@@ -0,0 +1,26 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "pymorphy3-dicts-ru";
+  version = "2.4.417150.4580142";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Oas3nUypBbr+1Q9a/Do95vlkNgV3b7yrxNMIjU7TgrA=";
+  };
+
+  # has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pymorphy3_dicts_ru" ];
+
+  meta = with lib; {
+    description = "Russian dictionaries for pymorphy3";
+    homepage = "https://github.com/no-plagiarism/pymorphy3-dicts";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jboy ];
+  };
+}
diff --git a/pkgs/development/python-modules/pymorphy3/dicts-uk.nix b/pkgs/development/python-modules/pymorphy3/dicts-uk.nix
new file mode 100644
index 0000000000000..036bf452b893c
--- /dev/null
+++ b/pkgs/development/python-modules/pymorphy3/dicts-uk.nix
@@ -0,0 +1,26 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "pymorphy3-dicts-uk";
+  version = "2.4.1.1.1663094765";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-s5RaNBNuGTgGzeZXuicdiKYHYedRN8E9E4qNFCqNEqw=";
+  };
+
+  # has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pymorphy3_dicts_uk" ];
+
+  meta = with lib; {
+    description = "Ukrainian dictionaries for pymorphy3";
+    homepage = "https://github.com/no-plagiarism/pymorphy3-dicts";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jboy ];
+  };
+}
diff --git a/pkgs/development/python-modules/pymumble/default.nix b/pkgs/development/python-modules/pymumble/default.nix
index 558d5c6bd9e5f..ffb2f33b1b21f 100644
--- a/pkgs/development/python-modules/pymumble/default.nix
+++ b/pkgs/development/python-modules/pymumble/default.nix
@@ -1,23 +1,26 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
 , isPy27
-, lib
 , opuslib
 , protobuf
 , pytestCheckHook
 , pycrypto
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pymumble";
-  version = "1.6.1";
-  disabled = isPy27;
+  version = "1.7";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "azlux";
     repo = "pymumble";
-    rev = version;
-    sha256 = "1qbsd2zvwd9ksclgiyrl1z79ms0zximm4527mnmhvq36lykgki7s";
+    rev = "refs/tags/${version}";
+    hash = "sha256-NMp1yZ+R9vmne7old7z9UvcxSi6C044g68ZQsofT0gA=";
   };
 
   postPatch = ''
@@ -42,8 +45,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Python 3 version of pymumble, Mumble library used for multiple uses like making mumble bot.";
+    description = "Library to create mumble bots";
     homepage = "https://github.com/azlux/pymumble";
+    changelog = "https://github.com/azlux/pymumble/releases/tag/${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ thelegy infinisil ];
   };
diff --git a/pkgs/development/python-modules/pynuki/default.nix b/pkgs/development/python-modules/pynuki/default.nix
index fde1bc061eca2..bf81a0c8d8d42 100644
--- a/pkgs/development/python-modules/pynuki/default.nix
+++ b/pkgs/development/python-modules/pynuki/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pynuki";
-  version = "1.6.0";
+  version = "1.6.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "pschmitt";
     repo = pname;
     rev = version;
-    hash = "sha256-9WiPApesocE9wXyI/qH+TTfbsTgJTyifSW3tfNro7XI=";
+    hash = "sha256-iGP8Bs5Jg8Xu1gAhpbB5lfrZjsF7X+lIt4dJP3fdhD8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyobihai/default.nix b/pkgs/development/python-modules/pyobihai/default.nix
index 0cc62311f3297..45f12b49b96f9 100644
--- a/pkgs/development/python-modules/pyobihai/default.nix
+++ b/pkgs/development/python-modules/pyobihai/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, defusedxml
 , fetchPypi
 , pythonOlder
 , requests
@@ -7,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyobihai";
-  version = "1.3.2";
+  version = "1.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,10 +16,11 @@ buildPythonPackage rec {
   # GitHub release, https://github.com/dshokouhi/pyobihai/issues/10
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zhsnJyhXlugK0nJ7FJZZcrq2VDQt1a9uCgsJAIABZ28=";
+    hash = "sha256-P6tKpssey59SdjS/QWpuv1UUagjR7RVAl6rse/O79mg=";
   };
 
   propagatedBuildInputs = [
+    defusedxml
     requests
   ];
 
diff --git a/pkgs/development/python-modules/pyoverkiz/default.nix b/pkgs/development/python-modules/pyoverkiz/default.nix
index 963290da2776a..b454381c47062 100644
--- a/pkgs/development/python-modules/pyoverkiz/default.nix
+++ b/pkgs/development/python-modules/pyoverkiz/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyoverkiz";
-  version = "1.7.6";
+  version = "1.7.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "iMicknl";
     repo = "python-overkiz-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nmXOmoPH8w4Soj8lhI7wl3uYVmKw3xSuIkmCF0XI7RI=";
+    hash = "sha256-QYvnSFt0pJL3clDxN2axJUMU8M/maj3iSeUfVRgQGFg=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pypykatz/default.nix b/pkgs/development/python-modules/pypykatz/default.nix
index da6cdd5dc10ef..59253178661cd 100644
--- a/pkgs/development/python-modules/pypykatz/default.nix
+++ b/pkgs/development/python-modules/pypykatz/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "pypykatz";
-  version = "0.6.3";
+  version = "0.6.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Rb4QCxntXJYA8sqkgAjS6e8WJK9ljhIKgM3dfpmbHSc=";
+    hash = "sha256-fPeEKTfRL142RIMSQxpByIAy09sXlmDjIATikc82Iuw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyrogram/default.nix b/pkgs/development/python-modules/pyrogram/default.nix
index 464a2cfcc750f..58598e1460bd5 100644
--- a/pkgs/development/python-modules/pyrogram/default.nix
+++ b/pkgs/development/python-modules/pyrogram/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pyrogram";
-  version = "2.0.99";
+  version = "2.0.101";
 
   disabled = pythonOlder "3.7";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pyrogram";
     repo = "pyrogram";
     rev = "v${version}";
-    hash = "sha256-QQFRDLB+gf5jzCf8imHwkSgOkAyLWJF3UDStnpq6+04=";
+    hash = "sha256-HFOT8PqK7n42j2H8EJ5c7h9PL28icQwYErPNcxPgoM8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pysma/default.nix b/pkgs/development/python-modules/pysma/default.nix
index de1bba50740c4..605e1b5dfe1c1 100644
--- a/pkgs/development/python-modules/pysma/default.nix
+++ b/pkgs/development/python-modules/pysma/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pysma";
-  version = "0.7.3";
+  version = "0.7.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-8LwxRiYUhKYZkrjDNcnOkssvfw/tZ6dj1GKZQ6UkqsQ=";
+    sha256 = "sha256-4u564tLk91duYv1IClHddur6t+Rbla/e9P0yWAxw2sw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pysml/default.nix b/pkgs/development/python-modules/pysml/default.nix
index 3ff7bee167cb7..ebada417bca3b 100644
--- a/pkgs/development/python-modules/pysml/default.nix
+++ b/pkgs/development/python-modules/pysml/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pysml";
-  version = "0.0.8";
+  version = "0.0.9";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "mtdcr";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Qw2irvj94cBquYeVUhqOq8lw85oP5TqtA2XTT2z5/as=";
+    sha256 = "sha256-pUbRttH/ksYcE1qZJAQWhuKk4+40w5xsul0TTqq1g3s=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysparse/default.nix b/pkgs/development/python-modules/pysparse/default.nix
deleted file mode 100644
index 02c1c36d08374..0000000000000
--- a/pkgs/development/python-modules/pysparse/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, blas
-, lapack
-, isPy27
-, python
-}:
-
-buildPythonPackage {
-  pname = "pysparse";
-  version = "1.3-dev";
-  disabled = !isPy27;
-
-  src = fetchFromGitHub {
-    owner = "PythonOptimizers";
-    repo = "pysparse";
-    rev = "f8430bd99ac2a6209c462657c5792d10033888cc";
-    sha256 = "19xcq8214yndra1xjhna3qjm32wprsqck97dlnw3xcww7rfy6hqh";
-  };
-
-  hardeningDisable = [ "all" ];
-
-  propagatedBuildInputs = [
-    numpy
-    blas
-    lapack
-  ];
-
-  # Include patches from working version of PySparse 1.3-dev in
-  # Conda-Forge,
-  # https://github.com/conda-forge/pysparse-feedstock/tree/b69266911a2/recipe
-  # Thanks to https://github.com/guyer
-  patches = [ ./dropPackageLoader.patch ];
-
-  checkPhase = ''
-    cd test
-    ${python.interpreter} -c "import pysparse"
-    ${python.interpreter} test_sparray.py
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/PythonOptimizers/pysparse";
-    description = "A Sparse Matrix Library for Python";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ costrouc ];
-  };
-}
diff --git a/pkgs/development/python-modules/pysparse/dropPackageLoader.patch b/pkgs/development/python-modules/pysparse/dropPackageLoader.patch
deleted file mode 100644
index b2526645f8908..0000000000000
--- a/pkgs/development/python-modules/pysparse/dropPackageLoader.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-diff --git a/pysparse/__init__.py b/pysparse/__init__.py
-index 6d09b00..ff39084 100644
---- a/pysparse/__init__.py
-+++ b/pysparse/__init__.py
-@@ -1,9 +1,42 @@
--"PySparse: A Fast Sparse Matrix Library for Python"
-+"""
-+PySparse: A Fast Sparse Matrix Library for Python
-+=================================================
-+
-+Documentation is available in the docstrings and
-+online at http://pysparse.sourceforge.net/.
-+
-+Contents
-+--------
-+Pysparse imports
-+::
-+ spmatrix                     --- sparse matrix types
-+
-+and, in addition, provides:
-+    
-+Subpackages
-+-----------
-+Using any of these subpackages requires an explicit import.  For example,
-+``import pysparse.itsolvers``.
-+
-+::
-+
-+ itsolvers                    --- Iterative linear algebra solvers
-+ precon                       --- Preconditioners
-+ direct                       --- Direct solvers
-+ direct.superlu               --- Wrappers to SuperLU library
-+ direct.umfpack               --- Wrappers to UMFPACK library
-+ eigen.jdsym                  --- Jacobi davidson eigenvalue solver for symmetric matrices
-+ 
-+Utility tools
-+-------------
-+::
-+
-+ __version__       --- pysparse version string
-+"""
-+
- 
- __docformat__ = 'restructuredtext'
- 
--# Imports
--from numpy._import_tools import PackageLoader
- try:
-     from version import version as __version__
- except ImportError:
-@@ -11,31 +44,6 @@ except ImportError:
-     __version__ = 'undefined'
-     
- from sparse import spmatrix
--#from sparse import *
--from misc import get_include
--
--pkgload = PackageLoader()
--pkgload(verbose=False,postpone=True)
--
--if __doc__:
--    __doc__ += """
--
--Available subpackages
-----------------------
--"""
--if __doc__:
--    __doc__ += pkgload.get_pkgdocs()
--
--__all__ = filter(lambda s: not s.startswith('_'), dir())
--__all__ += '__version__'
--
--__doc__ += """
--
--Miscellaneous
---------------
--
--    __version__  :  pysparse version string
--"""
- 
- from pysparse.misc import Deprecated
- 
-@@ -47,3 +55,5 @@ class _superlu:
-         return self.factorizeFnc(*args, **kwargs)
-     
- superlu = _superlu()
-+
-+__all__ = ['spmatrix', 'superlu', '__version__']
diff --git a/pkgs/development/python-modules/pytest-md-report/default.nix b/pkgs/development/python-modules/pytest-md-report/default.nix
new file mode 100644
index 0000000000000..1f9664947d2cc
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-md-report/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytablewriter
+, pytest
+, tcolorpy
+, typepy
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-md-report";
+  version = "0.3.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-ra88WXG6+xHSjOcy6tdYjvpKpNlvu6lq+sZckLadAlU=";
+  };
+
+  propagatedBuildInputs = [
+    pytablewriter
+    tcolorpy
+    typepy
+  ];
+
+  buildInputs = [ pytest ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pytest_md_report" ];
+
+  meta = with lib; {
+    description = "A pytest plugin to make a test results report with Markdown table format";
+    homepage = "https://github.com/thombashi/pytest-md-report";
+    changelog = "https://github.com/thombashi/pytest-md-report/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rrbutani ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-recording/default.nix b/pkgs/development/python-modules/pytest-recording/default.nix
new file mode 100644
index 0000000000000..7aab7a2804fa8
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-recording/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+# install dependencies
+, pytest
+, vcrpy
+, attrs
+# test dependencies
+, pytestCheckHook
+, pytest-httpbin
+, pytest-mock
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-recording";
+  version = "0.12.2";
+
+  src = fetchFromGitHub {
+    owner = "kiwicom";
+    repo = "pytest-recording";
+    rev = "v${version}";
+    hash = "sha256-nivwxaW8AIrBtPkzPJYfxlPxWn2NuYcaMry/IrBnnl0=";
+  };
+
+  buildInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    vcrpy
+    attrs
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-httpbin
+    pytest-mock
+    requests
+  ];
+
+  disabledTests = [
+    "test_block_network_with_allowed_hosts"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # Missing socket.AF_NETLINK
+    "test_other_socket"
+  ];
+
+  pytestFlagsArray = [
+    "tests"
+  ];
+
+  pythonImportsCheck = [
+    "pytest_recording"
+  ];
+
+  meta = with lib; {
+    description = "A pytest plugin that allows you recording of network interactions via VCR.py";
+    homepage = "https://github.com/kiwicom/pytest-recording";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dennajort ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-benedict/default.nix b/pkgs/development/python-modules/python-benedict/default.nix
index 446fbfcd9c9eb..c1c10cfc902e4 100644
--- a/pkgs/development/python-modules/python-benedict/default.nix
+++ b/pkgs/development/python-modules/python-benedict/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "python-benedict";
-  version = "0.28.3";
+  version = "0.29.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     owner = "fabiocaccamo";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-6gzmVOuJfNpNJlea4Am20HI98mgcKkwtU/28l7qg20Y=";
+    hash = "sha256-tsTd9EJkwI98ynXu/vz5hX+X55vxOkhIfeawQNn2f6Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-decouple/default.nix b/pkgs/development/python-modules/python-decouple/default.nix
index 5907be3a22a0c..144aec0fa5c51 100644
--- a/pkgs/development/python-modules/python-decouple/default.nix
+++ b/pkgs/development/python-modules/python-decouple/default.nix
@@ -8,16 +8,16 @@
 
 buildPythonPackage rec {
   pname = "python-decouple";
-  version = "3.7";
+  version = "3.8";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "HBNetwork";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-sCUlE+92+nG7ZHuGKXRJVx2wokNP7/F7g8LvdRWqHCQ=";
+    hash = "sha256-F9Gu7Y/dJhwOJi/ZaoVclF3+4U/N5JdvpXwgGB3SF3Q=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/python-matter-server/default.nix b/pkgs/development/python-modules/python-matter-server/default.nix
index e59781180b38c..0caf9f85e3e9c 100644
--- a/pkgs/development/python-modules/python-matter-server/default.nix
+++ b/pkgs/development/python-modules/python-matter-server/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "python-matter-server";
-  version = "2.1.0";
+  version = "3.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "python-matter-server";
     rev = "refs/tags/${version}";
-    hash = "sha256-T7afZsrvvJeEfLZm4jopAtfQ0Bhqa+s77SyrJToyUWU=";
+    hash = "sha256-nNf0Q3J5nrYDinMnl+p3HC4FYMX+GubYmtchfuATWms=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-mpv-jsonipc/default.nix b/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
index ade6acd85d46d..0dfe135814331 100644
--- a/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
+++ b/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "python-mpv-jsonipc";
-  version = "1.1.14";
+  version = "1.2.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "iwalton3";
     repo = "python-mpv-jsonipc";
     rev = "v${version}";
-    sha256 = "sha256-kOC6FsLYTVx/cCL8AZuGkKarHqAESjJA+2BUagbiy3A=";
+    sha256 = "sha256-W9TNtbRhQmwZXhi0TJIDkZRtWhi92/iwL056YIcWnLM=";
   };
 
   # 'mpv-jsonipc' does not have any tests
diff --git a/pkgs/development/python-modules/python-musicpd/default.nix b/pkgs/development/python-modules/python-musicpd/default.nix
new file mode 100644
index 0000000000000..cc4ab6b722f0a
--- /dev/null
+++ b/pkgs/development/python-modules/python-musicpd/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "python-musicpd";
+  version = "0.8.0";
+
+  src = fetchPypi {
+    inherit pname;
+    inherit version;
+    sha256 = "sha256-5Br4rZO1c/pPmAZ/UecYjuVLttR8R+xeReKsc/xnaeI=";
+  };
+
+  format = "setuptools";
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "An MPD (Music Player Daemon) client library written in pure Python.";
+    homepage = "https://gitlab.com/kaliko/python-musicpd";
+    license = licenses.lgpl3Plus;
+    maintainers = with lib.maintainers; [ apfelkuchen6 ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-otbr-api/default.nix b/pkgs/development/python-modules/python-otbr-api/default.nix
new file mode 100644
index 0000000000000..183fb31d065fa
--- /dev/null
+++ b/pkgs/development/python-modules/python-otbr-api/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, aiohttp
+, bitstruct
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, voluptuous
+}:
+
+buildPythonPackage rec {
+  pname = "python-otbr-api";
+  version = "1.0.7";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-libs";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    hash = "sha256-R6H+h6IbyI/Qhwb6ACT2sx/YWmLDMyg4gLMJdmNj2wk=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    bitstruct
+    cryptography
+    voluptuous
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "python_otbr_api"
+  ];
+
+  meta = with lib; {
+    description = "Library for the Open Thread Border Router";
+    homepage = "https://github.com/home-assistant-libs/python-otbr-api";
+    changelog = "https://github.com/home-assistant-libs/python-otbr-api/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-rapidjson/default.nix b/pkgs/development/python-modules/python-rapidjson/default.nix
index f2cd6d285b753..9cb3baf0663da 100644
--- a/pkgs/development/python-modules/python-rapidjson/default.nix
+++ b/pkgs/development/python-modules/python-rapidjson/default.nix
@@ -21,7 +21,8 @@ let
     };
     patches = [
       (fetchpatch {
-        url = "https://git.alpinelinux.org/aports/plain/community/rapidjson/do-not-include-gtest-src-dir.patch";
+        name = "do-not-include-gtest-src-dir.patch";
+        url = "https://git.alpinelinux.org/aports/plain/community/rapidjson/do-not-include-gtest-src-dir.patch?id=9e5eefc7a5fcf5938a8dc8a3be8c75e9e6809909";
         hash = "sha256-BjSZEwfCXA/9V+kxQ/2JPWbc26jQn35CfN8+8NW24s4=";
       })
     ];
diff --git a/pkgs/development/python-modules/python-velbus/default.nix b/pkgs/development/python-modules/python-velbus/default.nix
index c83ff853f1d55..c2357f2df32a7 100644
--- a/pkgs/development/python-modules/python-velbus/default.nix
+++ b/pkgs/development/python-modules/python-velbus/default.nix
@@ -1,18 +1,20 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , pyserial
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "python-velbus";
-  version = "2.1.4";
+  version = "2.1.9";
+  format = "setuptools";
 
-  src = fetchFromGitHub {
-    owner = "thomasdelaet";
-    repo = pname;
-    rev = version;
-    sha256 = "1z0a7fc9xfrcpwi9xiimxsgbzbp2iwyi1rij6vqd5z47mzi49fv9";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-SbuECT6851E+QNyyPaNTnKmH54fYovemSto8gvfMIKg=";
   };
 
   propagatedBuildInputs = [
@@ -22,7 +24,9 @@ buildPythonPackage rec {
   # Project has not tests
   doCheck = false;
 
-  pythonImportsCheck = [ "velbus" ];
+  pythonImportsCheck = [
+    "velbus"
+  ];
 
   meta = with lib; {
     description = "Python library to control the Velbus home automation system";
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index 9440ccad2982a..2b4afb7802c21 100644
--- a/pkgs/development/python-modules/pyvex/default.nix
+++ b/pkgs/development/python-modules/pyvex/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.2.39";
+  version = "9.2.41";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IQCMvP4o/aV+/tkP9SS5tlSNAdI6yRxYPczdF9jm1aY=";
+    hash = "sha256-NYNxuWvAvx5IW1gdWv+EF321yzUPaqFBRNKVwu4ogug=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyvizio/default.nix b/pkgs/development/python-modules/pyvizio/default.nix
index 807278d967d59..4a11c8f30ba14 100644
--- a/pkgs/development/python-modules/pyvizio/default.nix
+++ b/pkgs/development/python-modules/pyvizio/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "pyvizio";
-  version = "0.1.59";
+  version = "0.1.60";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1j2zbziklx4az55m3997y7yp4xflk7i0gsbdfh7fp9k0qngb2053";
+    sha256 = "sha256-RwwZDb4mQJZw8w1sTFJ0eM3az4pDQbVLGtA+anyKEJM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qtile-extras/default.nix b/pkgs/development/python-modules/qtile-extras/default.nix
new file mode 100644
index 0000000000000..76962bb496718
--- /dev/null
+++ b/pkgs/development/python-modules/qtile-extras/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools-scm
+, pytestCheckHook
+, xorgserver
+, pulseaudio
+, pytest-asyncio
+, qtile
+, keyring
+, requests
+, stravalib
+}:
+
+buildPythonPackage rec {
+  pname = "qtile-extras";
+  version = "0.22.1";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "elParaguayo";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-2dMpGLtwIp7+aoOgYav2SAjaKMiXHmmvsWTBEIMKEW4=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    xorgserver
+  ];
+  checkInputs = [
+    pytest-asyncio
+    qtile.unwrapped
+    pulseaudio
+    keyring
+    requests
+    stravalib
+  ];
+  disabledTests = [
+    # AttributeError: 'ImgMask' object has no attribute '_default_size'. Did you mean: 'default_size'?
+    # cairocffi.pixbuf.ImageLoadingError: Pixbuf error: Unrecognized image file format
+    "test_draw"
+    "test_icons"
+    "1-x11-GithubNotifications-kwargs3"
+    "1-x11-SnapCast-kwargs8"
+    "1-x11-TVHWidget-kwargs10"
+    "test_tvh_widget_not_recording"
+    "test_tvh_widget_recording"
+    "test_tvh_widget_popup"
+    "test_snapcast_options"
+    # ValueError: Namespace Gdk not available
+    # AssertionError: Window never appeared...
+    "test_gloabl_menu"
+    "test_statusnotifier_menu"
+    # AttributeError: 'str' object has no attribute 'canonical'
+    "test_strava_widget_display"
+    "test_strava_widget_popup"
+    # Needs a running DBUS
+    "test_brightness_power_saving"
+    "test_upower_all_batteries"
+    "test_upower_named_battery"
+    "test_upower_low_battery"
+    "test_upower_critical_battery"
+    "test_upower_charging"
+    "test_upower_show_text"
+  ];
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  pythonImportsCheck = [ "qtile_extras" ];
+
+  meta = with lib; {
+    description = "Extra modules and widgets for the Qtile tiling window manager";
+    homepage = "https://github.com/elParaguayo/qtile-extras";
+    changelog = "https://github.com/elParaguayo/qtile-extras/blob/${src.rev}/CHANGELOG";
+    license = licenses.mit;
+    maintainers = with maintainers; [ arjan-s ];
+  };
+}
diff --git a/pkgs/development/python-modules/qualysclient/default.nix b/pkgs/development/python-modules/qualysclient/default.nix
index a613148169026..d53c9e80a6c67 100644
--- a/pkgs/development/python-modules/qualysclient/default.nix
+++ b/pkgs/development/python-modules/qualysclient/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "qualysclient";
-  version = "0.0.4.8.2";
+  version = "0.0.4.8.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -23,8 +23,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "woodtechie1428";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "0hrbp5ci1l06j709k5y3z3ad9dryvrkvmc2wyb4a01gw7qzry7ys";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-+SZICysgSC4XeXC9CCl6Yxb47V9c1eMp7KcpH8J7kK0=";
   };
 
   propagatedBuildInputs = [
@@ -49,6 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python SDK for interacting with the Qualys API";
     homepage = "https://qualysclient.readthedocs.io/";
+    changelog = "https://github.com/woodtechie1428/qualysclient/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/questionary/default.nix b/pkgs/development/python-modules/questionary/default.nix
index b7b03c3b441a2..7d3009c1712c7 100644
--- a/pkgs/development/python-modules/questionary/default.nix
+++ b/pkgs/development/python-modules/questionary/default.nix
@@ -34,6 +34,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  preCheck = lib.optionalString stdenv.isDarwin ''
+    ulimit -n 1024
+  '';
+
   disabledTests = [
     # TypeError: <lambda>() missing 1 required...
     "test_print_with_style"
diff --git a/pkgs/development/python-modules/r2pipe/default.nix b/pkgs/development/python-modules/r2pipe/default.nix
index a6c2afa7d5ee8..b5dfd9eacb324 100644
--- a/pkgs/development/python-modules/r2pipe/default.nix
+++ b/pkgs/development/python-modules/r2pipe/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "r2pipe";
-  version = "1.7.4";
+  version = "1.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-bmr9/iqlp5GghY6DOpFhBH3k69ErqR3DHx7iAu3m6f0=";
+    sha256 = "sha256-T1w4QG0KBPBekETd+nMNbvPF2mgBZgQ/jhWcP9694mg=";
   };
 
   # Tiny sanity check to make sure r2pipe finds radare2 (since r2pipe doesn't
diff --git a/pkgs/development/python-modules/radian/default.nix b/pkgs/development/python-modules/radian/default.nix
new file mode 100644
index 0000000000000..d348c6e0c5612
--- /dev/null
+++ b/pkgs/development/python-modules/radian/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pyte
+, pexpect
+, ptyprocess
+, jedi
+, git
+, lineedit
+, prompt-toolkit
+, pygments
+, rchitect
+, six
+, R
+, rPackages
+}:
+
+buildPythonPackage rec {
+  pname = "radian";
+  version = "0.6.4";
+
+  src = fetchFromGitHub {
+    owner = "randy3k";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "QEHVdyVgsZxvs+d+xeeJqwx531+6e0uPi1J3t+hJ0d0=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace '"pytest-runner"' ""
+  '';
+
+  nativeBuildInputs = [
+    R # needed at setup time to detect R_HOME
+  ];
+
+  propagatedBuildInputs = [
+    lineedit
+    prompt-toolkit
+    pygments
+    rchitect
+    six
+  ] ++ (with rPackages; [
+    reticulate
+    askpass
+  ]);
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pyte
+    pexpect
+    ptyprocess
+    jedi
+    git
+  ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${R}/lib/R/lib
+  '';
+
+  pythonImportsCheck = [ "radian" ];
+
+  meta = with lib; {
+    description = "A 21 century R console";
+    homepage = "https://github.com/randy3k/radian";
+    license = licenses.mit;
+    maintainers = with maintainers; [ savyajha ];
+  };
+}
diff --git a/pkgs/development/python-modules/rangehttpserver/default.nix b/pkgs/development/python-modules/rangehttpserver/default.nix
index 673661b07b99f..010b959edad3e 100644
--- a/pkgs/development/python-modules/rangehttpserver/default.nix
+++ b/pkgs/development/python-modules/rangehttpserver/default.nix
@@ -2,20 +2,20 @@
 , buildPythonPackage
 , fetchFromGitHub
 , setuptools
-, nose
+, pytestCheckHook
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "rangehttpserver";
-  version = "1.2.0";
+  version = "1.3.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "danvk";
     repo = "RangeHTTPServer";
-    rev = version;
-    sha256 = "1sy9j6y8kp5jiwv2vd652v94kspp1yd4dwxrfqfn6zwnfyv2mzv5";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ZXEbis37QO8t05JQ2qQQf5rkUSxq3DwzR3khAJkZ5W0=";
   };
 
   nativeBuildInputs = [
@@ -23,16 +23,10 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    nose
+    pytestCheckHook
     requests
   ];
 
-  checkPhase = ''
-    runHook preCheck
-    nosetests
-    runHook postCheck
-  '';
-
   pythonImportsCheck = [
     "RangeHTTPServer"
   ];
@@ -40,6 +34,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "SimpleHTTPServer with support for Range requests";
     homepage = "https://github.com/danvk/RangeHTTPServer";
+    changelog = "https://github.com/danvk/RangeHTTPServer/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/ray/default.nix b/pkgs/development/python-modules/ray/default.nix
index c6b764181875a..99a62a64025d5 100644
--- a/pkgs/development/python-modules/ray/default.nix
+++ b/pkgs/development/python-modules/ray/default.nix
@@ -68,7 +68,7 @@ buildPythonPackage rec {
   src =
     let
       pyShortVersion = "cp${builtins.replaceStrings ["."] [""] python.pythonVersion}";
-      binary-hash = (import ./binary-hashes.nix)."${pyShortVersion}";
+      binary-hash = (import ./binary-hashes.nix)."${pyShortVersion}" or {};
     in
     fetchPypi ({
       inherit pname version format;
diff --git a/pkgs/development/python-modules/rchitect/default.nix b/pkgs/development/python-modules/rchitect/default.nix
new file mode 100644
index 0000000000000..9e0b1b48d29db
--- /dev/null
+++ b/pkgs/development/python-modules/rchitect/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cffi
+, six
+, pytestCheckHook
+, pytest-mock
+, R
+, rPackages }:
+
+buildPythonPackage rec {
+  pname = "rchitect";
+  version = "0.3.40";
+
+  src = fetchFromGitHub {
+    owner = "randy3k";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "yJMiPmusZ62dd6+5VkA2uSjq57a0C3arG8CgiUUHKpk=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace '"pytest-runner"' ""
+  '';
+
+  propagatedBuildInputs = [
+    cffi
+    six
+  ] ++ (with rPackages; [
+    reticulate
+  ]);
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mock
+    R
+  ];
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${R}/lib/R/lib
+    cd $TMPDIR
+  '';
+
+  pythonImportsCheck = [ "rchitect" ];
+
+  meta = with lib; {
+    description = "Interoperate R with Python";
+    homepage = "https://github.com/randy3k/rchitect";
+    license = licenses.mit;
+    maintainers = with maintainers; [ savyajha ];
+  };
+}
diff --git a/pkgs/development/python-modules/recommonmark/default.nix b/pkgs/development/python-modules/recommonmark/default.nix
index 7804029c0d9b3..ebe070f2735f7 100644
--- a/pkgs/development/python-modules/recommonmark/default.nix
+++ b/pkgs/development/python-modules/recommonmark/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytestCheckHook
-, CommonMark
+, commonmark
 , docutils
 , sphinx
 , isPy3k
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [ pytestCheckHook ];
-  propagatedBuildInputs = [ CommonMark docutils sphinx ];
+  propagatedBuildInputs = [ commonmark docutils sphinx ];
 
   dontUseSetuptoolsCheck = true;
 
diff --git a/pkgs/development/python-modules/reolink-aio/default.nix b/pkgs/development/python-modules/reolink-aio/default.nix
index aa1ebb430d9a4..c7a64077580b3 100644
--- a/pkgs/development/python-modules/reolink-aio/default.nix
+++ b/pkgs/development/python-modules/reolink-aio/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "reolink-aio";
-  version = "0.5.1";
+  version = "0.5.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "starkillerOG";
     repo = "reolink_aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-twfFPtTR2LIAbd5YuOgTG/j/xktLkTD3/9fjo514eXI=";
+    hash = "sha256-Fp+OFvFYI4o5KFGgp3E41X55FHzvP66PoB5LtMqdbjg=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/rich/default.nix b/pkgs/development/python-modules/rich/default.nix
index b263a2d08cbed..80110a6998fa6 100644
--- a/pkgs/development/python-modules/rich/default.nix
+++ b/pkgs/development/python-modules/rich/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
-, CommonMark
+, commonmark
 , poetry-core
 , pygments
 , typing-extensions
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
-    CommonMark
+    commonmark
     pygments
   ] ++ lib.optionals (pythonOlder "3.9") [
     typing-extensions
diff --git a/pkgs/development/python-modules/rns/default.nix b/pkgs/development/python-modules/rns/default.nix
index 453a6e8e953f7..b808a407abaa8 100644
--- a/pkgs/development/python-modules/rns/default.nix
+++ b/pkgs/development/python-modules/rns/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "rns";
-  version = "0.4.9";
+  version = "0.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "Reticulum";
     rev = "refs/tags/${version}";
-    hash = "sha256-6hv85lWr2/qRzLrER6IYdmcvgiPKi1tt4fQaiqGwFQY=";
+    hash = "sha256-mkCICKuo9NYkfjjbuDInq+ENwZsQJMf5C1HS+8nafJI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/roombapy/default.nix b/pkgs/development/python-modules/roombapy/default.nix
index c1ee853a105c0..7cbe1942e50a8 100644
--- a/pkgs/development/python-modules/roombapy/default.nix
+++ b/pkgs/development/python-modules/roombapy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "roombapy";
-  version = "1.6.5";
+  version = "1.6.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pschmitt";
     repo = "roombapy";
     rev = version;
-    sha256 = "sha256-Xjeh29U+FCzI5n/i5s6wC0B88Ktmb8pnNDdOzCiKWi4=";
+    hash = "sha256-dfeMd/THlj2HQYcLPmeC3AWP3vR/6+8BFU1QtSu5xg4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/rpyc/default.nix b/pkgs/development/python-modules/rpyc/default.nix
index 5ad8494634fe7..0d02b9b3d93aa 100644
--- a/pkgs/development/python-modules/rpyc/default.nix
+++ b/pkgs/development/python-modules/rpyc/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "rpyc";
-  version = "5.3.0";
+  version = "5.3.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "tomerfiliba";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-gqYjCvyiLhgosmzYITrthMkjLA6WJcBbmjkTNXZKUxc=";
+    hash = "sha256-2b6ryqDqZPs5VniLhCwA1/c9+3CT+JJrr3VwP3G6tpY=";
   };
 
   nativeBuildInputs = [
@@ -56,6 +56,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
     homepage = "https://rpyc.readthedocs.org";
+    changelog = "https://github.com/tomerfiliba-org/rpyc/blob/${version}/CHANGELOG.rst";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/s3fs/default.nix b/pkgs/development/python-modules/s3fs/default.nix
index b212af78a26c5..eec3bbff83166 100644
--- a/pkgs/development/python-modules/s3fs/default.nix
+++ b/pkgs/development/python-modules/s3fs/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "2023.1.0";
+  version = "2023.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-iy4oNyQj6T8mMSIIqScuIqli3dCnnWP5poaTtq9f8Yc=";
+    hash = "sha256-XBVN7Tjjw9jw66f+wnBvKbQeDDlfGfv+87qOcMaFsEk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/scikit-rf/default.nix b/pkgs/development/python-modules/scikit-rf/default.nix
new file mode 100644
index 0000000000000..c4a90132d9f94
--- /dev/null
+++ b/pkgs/development/python-modules/scikit-rf/default.nix
@@ -0,0 +1,113 @@
+{ stdenv
+, lib
+, pythonOlder
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, scipy
+, pandas
+, matplotlib
+, tox
+, coverage
+, flake8
+, nbval
+, pyvisa
+, networkx
+, ipython
+, ipykernel
+, ipywidgets
+, jupyter-client
+, sphinx-rtd-theme
+, sphinx
+, nbsphinx
+, openpyxl
+, qtpy
+, pyqtgraph
+, pyqt5
+, setuptools
+, pytestCheckHook
+, pytest-cov
+}:
+
+buildPythonPackage rec {
+  pname = "scikit-rf";
+  version = "0.25.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "scikit-rf";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-drH1N1rKFu/zdLmLsD1jH5xUkzK37V/+nJqGQ38vsTI=";
+  };
+
+  buildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    pandas
+  ];
+
+  passthru.optional-dependencies = {
+    plot = [
+      matplotlib
+    ];
+    xlsx = [
+      openpyxl
+    ];
+    netw = [
+      networkx
+    ];
+    visa = [
+      pyvisa
+    ];
+    docs = [
+      ipython
+      ipykernel
+      ipywidgets
+      jupyter-client
+      sphinx-rtd-theme
+      sphinx
+      nbsphinx
+      openpyxl
+    ];
+    qtapps = [
+      qtpy
+      pyqtgraph
+      pyqt5
+    ];
+  };
+
+  nativeCheckInputs = [
+    tox
+    coverage
+    flake8
+    pytest-cov
+    nbval
+    matplotlib
+    pyvisa
+    openpyxl
+    networkx
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "skrf"
+  ];
+
+  meta = with lib; {
+    description = "A Python library for RF/Microwave engineering";
+    homepage = "https://scikit-rf.org/";
+    changelog = "https://github.com/scikit-rf/scikit-rf/releases/tag/v${version}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lugarun ];
+  };
+}
diff --git a/pkgs/development/python-modules/scikit-survival/default.nix b/pkgs/development/python-modules/scikit-survival/default.nix
index 708979a4cb2e7..c129f4651e5e9 100644
--- a/pkgs/development/python-modules/scikit-survival/default.nix
+++ b/pkgs/development/python-modules/scikit-survival/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "scikit-survival";
-  version = "0.19.0.post1";
+  version = "0.20.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-UBhUCpRXyd5gLxaf38wBURo2DIoUgMmROogGF3bwWJk=";
+    sha256 = "sha256-24+8Sociq6u3KnoGSdV5Od5t/OT1uPkv19i3p5ezLjw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/scmrepo/default.nix b/pkgs/development/python-modules/scmrepo/default.nix
index ebc8e77f52f12..d8c04f10d6e5a 100644
--- a/pkgs/development/python-modules/scmrepo/default.nix
+++ b/pkgs/development/python-modules/scmrepo/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "scmrepo";
-  version = "0.1.12";
+  version = "0.1.15";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-2FUSIDueEleGj7BvIlyMB1ma7TW9kA5RUDBuDCvKLN0=";
+    hash = "sha256-Z/W49P1T8XgCmKWLTO/eI7ArAB9QKWUbJWRTlRnjJ7E=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/screenlogicpy/default.nix b/pkgs/development/python-modules/screenlogicpy/default.nix
index 3bc5e45bd3baa..90d179bffad44 100644
--- a/pkgs/development/python-modules/screenlogicpy/default.nix
+++ b/pkgs/development/python-modules/screenlogicpy/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "screenlogicpy";
-  version = "0.7.2";
+  version = "0.8.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "dieselrabbit";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-0yQ0upLkx5oroEH9BvIOfM5bgmVJw8o83IeAao5ncVs=";
+    hash = "sha256-cnQ3YqVz0AfEVma/RfQuB5kOBxo59qJJBn7PwaEe8Ro=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index d81b055036c9b..45834b88b8bf1 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -40,7 +40,7 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.15.0";
+  version = "1.16.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -49,7 +49,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-xUDMi2xoRMsDDe7LcQxIxxozo8vV5ZPzZp5zmNld3ew=";
+    hash = "sha256-hJ6OikRro9YUEX8rqMs/JkTvM9aTabEj4E8iNQ71gEc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/setuptools-gettext/default.nix b/pkgs/development/python-modules/setuptools-gettext/default.nix
index f8b5d45bbc7f9..882eb6d4599b2 100644
--- a/pkgs/development/python-modules/setuptools-gettext/default.nix
+++ b/pkgs/development/python-modules/setuptools-gettext/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "setuptools-gettext";
-  version = "0.1.1";
+  version = "0.1.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "breezy-team";
     repo = "setuptools-gettext";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MifsEuWNTEDJa9RfIbM/EDMJg0cmHXX6oJxNskKEbY4=";
+    hash = "sha256-pTjYdezNBFeLCh6cbC+YtHxQB4zrZAFTCjjNQffbHhc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sip/4.x.nix b/pkgs/development/python-modules/sip/4.x.nix
index 111cd66ed22f7..d90d4ff20416e 100644
--- a/pkgs/development/python-modules/sip/4.x.nix
+++ b/pkgs/development/python-modules/sip/4.x.nix
@@ -21,16 +21,7 @@ buildPythonPackage rec {
 
   enableParallelBuilding = true;
 
-  installCheckPhase = let
-    modules = [
-      sip-module
-      "sipconfig"
-    ];
-    imports = lib.concatMapStrings (module: "import ${module};") modules;
-  in ''
-    echo "Checking whether modules can be imported..."
-    PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH ${python.interpreter} -c "${imports}"
-  '';
+  pythonImportsCheck = [ sip-module "sipconfig" ];
 
   doCheck = true;
 
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index 7114b7b167169..6d805c35f0212 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.20.0";
+  version = "3.20.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NlUmoOlRV7h7d553uX2tAWi2aWCAqpHflSUrdZxlaws=";
+    hash = "sha256-2MPXV+rVXZYMTZe11T8x8GKQmHZwUlkwarCkheVkERo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/snapcast/default.nix b/pkgs/development/python-modules/snapcast/default.nix
index 2588c5724996e..0ffcbdb135c9e 100644
--- a/pkgs/development/python-modules/snapcast/default.nix
+++ b/pkgs/development/python-modules/snapcast/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "snapcast";
-  version = "2.3.1";
+  version = "2.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "happyleavesaoc";
     repo = "python-snapcast";
     rev = "refs/tags/${version}";
-    hash = "sha256-5SnjAkIrsgyEQ9nrBfe1jL+y4cxFzRVao2PM3VPIz8c=";
+    hash = "sha256-kUUKDcHnWA+saqQM7aCfW9NmhG6DYsB21tlEQ3cYNs4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/snscrape/default.nix b/pkgs/development/python-modules/snscrape/default.nix
index 379159180a060..5d87fb52b2ab9 100644
--- a/pkgs/development/python-modules/snscrape/default.nix
+++ b/pkgs/development/python-modules/snscrape/default.nix
@@ -12,16 +12,16 @@
 
 buildPythonPackage rec {
   pname = "snscrape";
-  version = "0.4.3.20220106";
-  format = "setuptools";
+  version = "0.6.0.20230303";
+  format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "JustAnotherArchivist";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-gphNT1IYSiAw22sqHlV8Rm4WRP4EWUvP0UkITuepmMc=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-FY8byS+0yAhNSRxWsrsQMR5kdZmnHutru5Z6SWVfpiE=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/spacy-transformers/annotation-test/annotate.py b/pkgs/development/python-modules/spacy-transformers/annotation-test/annotate.py
index d0be2d1c335a4..96854b6cae8ec 100644
--- a/pkgs/development/python-modules/spacy-transformers/annotation-test/annotate.py
+++ b/pkgs/development/python-modules/spacy-transformers/annotation-test/annotate.py
@@ -59,10 +59,11 @@ def test_verbs(doc_en_core_web_trf):
     assert [
         token.lemma_ for token in doc_en_core_web_trf if token.pos_ == "VERB"] == [
         'start',
+        'work',
+        'drive',
         'take',
         'tell',
         'shake',
         'turn',
-        'be',
         'talk',
         'say']
diff --git a/pkgs/development/python-modules/spacy-transformers/default.nix b/pkgs/development/python-modules/spacy-transformers/default.nix
index 068f8ede69dd0..5a9e86f4951ca 100644
--- a/pkgs/development/python-modules/spacy-transformers/default.nix
+++ b/pkgs/development/python-modules/spacy-transformers/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "spacy-transformers";
-  version = "1.1.9";
+  version = "1.2.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2uU6y/rsvNSLpeXL6O9IOQ0RMN0AEMH+/IKH6uufusU=";
+    hash = "sha256-Up9ZlLlAM0CDXEYDI95KsLzA0TBz/uZFqEgZLmNIABA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spacy/models.json b/pkgs/development/python-modules/spacy/models.json
index e44e2300763d8..8c6987d95d910 100644
--- a/pkgs/development/python-modules/spacy/models.json
+++ b/pkgs/development/python-modules/spacy/models.json
@@ -42,6 +42,12 @@
     "license": "cc-by-sa-40"
   },
   {
+    "pname": "da_core_news_trf",
+    "version": "3.5.0",
+    "sha256": "0b8mxr1ajyw8ccm0khmcp4n3jcxl4syfrmiy9kzf3cp4hcrnqnxy",
+    "license": "cc-by-sa-40"
+  },
+  {
     "pname": "de_core_news_lg",
     "version": "3.5.0",
     "sha256": "0l3sg853xfkab7mj41n370x37iksp79nrjp7s60hhajpfbl546a0",
@@ -132,6 +138,24 @@
     "license": "gpl3"
   },
   {
+    "pname": "fi_core_news_lg",
+    "version": "3.5.0",
+    "sha256": "0j3r01a0yqgj8apfjv1wkblhqg86yp2nzxv51nf99pi2nmh81jzx",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "fi_core_news_md",
+    "version": "3.5.0",
+    "sha256": "09qfzwyw6wfdmw1bgd1kfg1gdbmzal5z1r240djivxygzn6f1ixs",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "fi_core_news_sm",
+    "version": "3.5.0",
+    "sha256": "1ly71cacy0gr62acvc3vl8dxh2czd6zkm7ijprisdblw17ik9yln",
+    "license": "cc-by-sa-40"
+  },
+  {
     "pname": "fr_core_news_lg",
     "version": "3.5.0",
     "sha256": "1zjf348c60xf35zaldgykrlskvrryxv9vdaz49xlwq9caw0yzyh4",
@@ -156,6 +180,24 @@
     "license": "lgpllr"
   },
   {
+    "pname": "hr_core_news_lg",
+    "version": "3.5.0",
+    "sha256": "1fvkzfi539fmp6jy3hjcrwvdxw5k6zc3h351s887xidlw3gs1kr3",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "hr_core_news_md",
+    "version": "3.5.0",
+    "sha256": "1mi6k9qjxbigrl2fa60blyyz8b54jda5hc1s96vn9rykg4rni8cr",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "hr_core_news_sm",
+    "version": "3.5.0",
+    "sha256": "1s22mx7y5h135ry5l49az30l7mw7fdrz53s4a9gaxfsp9rzs474g",
+    "license": "cc-by-sa-40"
+  },
+  {
     "pname": "it_core_news_lg",
     "version": "3.5.0",
     "sha256": "1z64s632wbjlqmnmppcnpf2pfrjbml30gbil7mk0qln2i2hrh0qq",
@@ -174,6 +216,24 @@
     "license": "cc-by-nc-sa-30"
   },
   {
+    "pname": "ko_core_news_lg",
+    "version": "3.5.0",
+    "sha256": "1q314wb114ynkf455cm8jd9jsx3yb6y0rrgf820ww31jlk5jzaa9",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "ko_core_news_md",
+    "version": "3.5.0",
+    "sha256": "0dy7kk4bvjl944vv2m4hcvppar7clwq28y2rk40i3022jbqh2nxq",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "ko_core_news_sm",
+    "version": "3.5.0",
+    "sha256": "1i5q8dpyfa2sy80hr81r6s9dqpawp36ni8slz035b0wd9sq3i73v",
+    "license": "cc-by-sa-40"
+  },
+  {
     "pname": "lt_core_news_lg",
     "version": "3.5.0",
     "sha256": "002xalsrf85vg4c3gmj1zaka1zfy7smxv2xpqkl00idiixc5822y",
@@ -336,6 +396,30 @@
     "license": "cc-by-sa-40"
   },
   {
+    "pname": "uk_core_news_lg",
+    "version": "3.5.0",
+    "sha256": "0hl9xjnxslckc6wvfgkj30r3py8q95yj7mrxdb6m5gvknlq72kp2",
+    "license": "mit"
+  },
+  {
+    "pname": "uk_core_news_md",
+    "version": "3.5.0",
+    "sha256": "05mg719ra5khm61yr7xhfcsh3apl29s3h2wkq0v87gkyqn13812p",
+    "license": "mit"
+  },
+  {
+    "pname": "uk_core_news_sm",
+    "version": "3.5.0",
+    "sha256": "1dkbmjbyhf6vsr7c4m4njgi969sfhbdnp73skl3k206dign5qgnz",
+    "license": "mit"
+  },
+  {
+    "pname": "uk_core_news_trf",
+    "version": "3.5.0",
+    "sha256": "02bhvcivalifrxd3vl118799wvg6hgykj31wwfdsgnq68lwc28fb",
+    "license": "mit"
+  },
+  {
     "pname": "xx_ent_wiki_sm",
     "version": "3.5.0",
     "sha256": "042aszgyzbp5n5bn6lgk1m38zxfl1irbryid5fslgh19b19l8v3x",
diff --git a/pkgs/development/python-modules/spacy/models.nix b/pkgs/development/python-modules/spacy/models.nix
index 4110e157d62b6..287364dc873ab 100644
--- a/pkgs/development/python-modules/spacy/models.nix
+++ b/pkgs/development/python-modules/spacy/models.nix
@@ -1,8 +1,9 @@
 { lib
 , buildPythonPackage
 , fetchurl
-, jieba
-, pymorphy2
+, protobuf
+, pymorphy3
+, pymorphy3-dicts-uk
 , sentencepiece
 , spacy
 , spacy-pkuseg
@@ -15,8 +16,10 @@
 }:
 let
   buildModelPackage = { pname, version, sha256, license }:
+
     let
       lang = builtins.substring 0 2 pname;
+      requires-protobuf = pname == "fr_dep_news_trf" || pname == "uk_core_news_trf";
     in
     buildPythonPackage {
       inherit pname version;
@@ -27,16 +30,21 @@ let
       };
 
       propagatedBuildInputs = [ spacy ]
-        ++ lib.optionals (lang == "zh") [ jieba spacy-pkuseg ]
         ++ lib.optionals (lib.hasSuffix "_trf" pname) [ spacy-transformers ]
-        ++ lib.optionals (lang == "ru") [ pymorphy2 ]
+        ++ lib.optionals (lang == "ru") [ pymorphy3 ]
+        ++ lib.optionals (lang == "uk") [ pymorphy3 pymorphy3-dicts-uk ]
+        ++ lib.optionals (lang == "zh") [ spacy-pkuseg ]
         ++ lib.optionals (pname == "fr_dep_news_trf") [ sentencepiece ];
 
-      postPatch = lib.optionalString (pname == "fr_dep_news_trf") ''
+      postPatch = lib.optionalString requires-protobuf ''
         substituteInPlace meta.json \
-          --replace "sentencepiece==0.1.91" "sentencepiece>=0.1.91"
+          --replace "protobuf<3.21.0" "protobuf"
       '';
 
+      nativeBuildInputs = lib.optionals requires-protobuf [
+        protobuf
+      ];
+
       pythonImportsCheck = [ pname ];
 
       passthru.updateScript = writeScript "update-spacy-models" ''
diff --git a/pkgs/development/python-modules/sparse/default.nix b/pkgs/development/python-modules/sparse/default.nix
index a9ed433c2e52d..047689b5c26ff 100644
--- a/pkgs/development/python-modules/sparse/default.nix
+++ b/pkgs/development/python-modules/sparse/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "sparse";
-  version = "0.13.0";
+  version = "0.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aF3JlKp3DuGyPy1TkoGchCnyeVh3H43OssT7gCENWRU=";
+    hash = "sha256-X1gno39s1vZzClQfmUyVxgo64jKeAfS6Ic7VM5rqAJg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sphinx-book-theme/default.nix b/pkgs/development/python-modules/sphinx-book-theme/default.nix
index 12a5878024b82..cb7c3a593b19c 100644
--- a/pkgs/development/python-modules/sphinx-book-theme/default.nix
+++ b/pkgs/development/python-modules/sphinx-book-theme/default.nix
@@ -4,13 +4,12 @@
 , fetchPypi
 , sphinx
 , pydata-sphinx-theme
-, pyyaml
 , jupyter-book
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-book-theme";
-  version = "1.0.0rc2";
+  version = "1.0.0";
 
   format = "wheel";
 
@@ -21,13 +20,12 @@ buildPythonPackage rec {
     dist = "py3";
     python = "py3";
     pname = "sphinx_book_theme";
-    sha256 = "43977402f55b79706e117c6de6f50e67dac6dad698eb9b75be07dc2e6a689bde";
+    sha256 = "sha256-9rq6eIjVpjMoohDplgp6bpUeljLXTttvzkjJ1djCh2g=";
   };
 
   propagatedBuildInputs = [
-    sphinx
     pydata-sphinx-theme
-    pyyaml
+    sphinx
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/sphinx-markdown-parser/default.nix b/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
index cd5b1927d1024..626e8dba585b2 100644
--- a/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
+++ b/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
@@ -4,7 +4,7 @@
 , fetchFromGitHub
 , sphinx
 , markdown
-, CommonMark
+, commonmark
 , recommonmark
 , pydash
 , pyyaml
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     sha256 = "0i0hhapmdmh83yx61lxi2h4bsmhnzddamz95844g2ghm132kw5mv";
   };
 
-  propagatedBuildInputs = [ sphinx markdown CommonMark pydash pyyaml unify yapf recommonmark ];
+  propagatedBuildInputs = [ sphinx markdown commonmark pydash pyyaml unify yapf recommonmark ];
 
   # Avoids running broken tests in test_markdown.py
   checkPhase = ''
diff --git a/pkgs/development/python-modules/sphinxext-opengraph/default.nix b/pkgs/development/python-modules/sphinxext-opengraph/default.nix
index 4bf290328821c..4109e513dd356 100644
--- a/pkgs/development/python-modules/sphinxext-opengraph/default.nix
+++ b/pkgs/development/python-modules/sphinxext-opengraph/default.nix
@@ -2,20 +2,25 @@
 , buildPythonPackage
 , fetchFromGitHub
 , sphinx
+, matplotlib
 , pytestCheckHook
+, pythonOlder
 , beautifulsoup4
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "sphinxext-opengraph";
-  version = "0.7.5";
+  version = "0.8.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "wpilibsuite";
     repo = "sphinxext-opengraph";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fNtXj7iYX7rSaGO6JcxC+PvR8WzTFl8gYwHyRExYdfI=";
+    hash = "sha256-3q/OKkLtyA1Dw2PfTT4Fmzyn5qPbjprekpE7ItnFNUo=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -26,6 +31,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     sphinx
+    matplotlib
   ];
 
   nativeCheckInputs = [
@@ -38,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Sphinx extension to generate unique OpenGraph metadata";
     homepage = "https://github.com/wpilibsuite/sphinxext-opengraph";
+    changelog = "https://github.com/wpilibsuite/sphinxext-opengraph/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ Luflosi ];
   };
diff --git a/pkgs/development/python-modules/spur/default.nix b/pkgs/development/python-modules/spur/default.nix
index 24bdc5839a47f..4b4fe911817e1 100644
--- a/pkgs/development/python-modules/spur/default.nix
+++ b/pkgs/development/python-modules/spur/default.nix
@@ -7,16 +7,16 @@
 
 buildPythonPackage rec {
   pname = "spur";
-  version = "0.3.22";
+  version = "0.3.23";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mwilliamson";
     repo = "spur.py";
-    rev = version;
-    sha256 = "sha256-YlwezAE7V4ykFsp+bJ2nYRp6HG4I9Bk7Lhq6f1Inn0s=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-LTkZ1p2P9fsD+gZEQZaCS68Q6nGc4qFGMNtH75gQmXQ=";
   };
 
   propagatedBuildInputs = [
@@ -33,6 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module to run commands and manipulate files locally or over SSH";
     homepage = "https://github.com/mwilliamson/spur.py";
+    changelog = "https://github.com/mwilliamson/spur.py/blob/0.3.23/CHANGES";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/sqlmap/default.nix b/pkgs/development/python-modules/sqlmap/default.nix
index 80e82d353e981..a3792cc910817 100644
--- a/pkgs/development/python-modules/sqlmap/default.nix
+++ b/pkgs/development/python-modules/sqlmap/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "sqlmap";
-  version = "1.7.2";
+  version = "1.7.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XTLDdfNZXzqTreRan2kb0tGygdhdAW4JG3rZPKvkDfM=";
+    hash = "sha256-Madz55RkI+SEtkBep1rcQt2iIwd/LqfzCCKP+4jRHUE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/squarify/default.nix b/pkgs/development/python-modules/squarify/default.nix
new file mode 100644
index 0000000000000..e0fe054156c67
--- /dev/null
+++ b/pkgs/development/python-modules/squarify/default.nix
@@ -0,0 +1,31 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, pytestCheckHook
+, matplotlib
+}:
+
+buildPythonPackage rec {
+  pname = "squarify";
+  version = "0.4.3";
+
+  src = fetchFromGitHub {
+    owner = "laserson";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-zSv+6xT9H4WyShRnwjjcNMjY19AFlQ6bw9Mh9p2rL08=";
+  };
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  propagatedBuildInputs = [ matplotlib ];
+
+  pythonImportsCheck = [ "squarify" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/laserson/squarify";
+    description = "Pure Python implementation of the squarify treemap layout algorithm";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/pkgs/development/python-modules/srsly/default.nix b/pkgs/development/python-modules/srsly/default.nix
index 9f1d946688516..fa4cf74069bc7 100644
--- a/pkgs/development/python-modules/srsly/default.nix
+++ b/pkgs/development/python-modules/srsly/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "srsly";
-  version = "2.4.5";
+  version = "2.4.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yEIliWe6pSfOqTZ5huQrgUOhqJDn1KGNJaNu3Dx6M8c=";
+    hash = "sha256-R7QfMjq6TJwzEav2DkQ8A6nv6cafZdxALRc8Mvd0Sm8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/sunweg/default.nix b/pkgs/development/python-modules/sunweg/default.nix
index 9dd2338e10caf..0d2e00e59e542 100644
--- a/pkgs/development/python-modules/sunweg/default.nix
+++ b/pkgs/development/python-modules/sunweg/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "sunweg";
-  version = "0.0.11";
+  version = "1.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "rokam";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-by75V1DXQBPCc/viMcbMqF99kNXDjY2Cx0W3Mh2CfI8=";
+    hash = "sha256-fGaPn4pp1nDL4MX7K8zP2Vq2R/uRtd8rHSaWEG5Ye7s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/swift/default.nix b/pkgs/development/python-modules/swift/default.nix
index 1eed43519e7e9..a38752845042e 100644
--- a/pkgs/development/python-modules/swift/default.nix
+++ b/pkgs/development/python-modules/swift/default.nix
@@ -24,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "swift";
-  version = "2.31.0";
+  version = "2.31.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gU6XQKiLv6E1OtSjwDunjhNIMK36//arcSsQRwuRtTY=";
+    sha256 = "sha256-6CRSIv2m2pqZdzRAEJ/6Qo90PZ7LRNg1zQg50Ecq2RQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/syrupy/default.nix b/pkgs/development/python-modules/syrupy/default.nix
index 3ad320751acbe..8b22b098a8ce0 100644
--- a/pkgs/development/python-modules/syrupy/default.nix
+++ b/pkgs/development/python-modules/syrupy/default.nix
@@ -1,22 +1,25 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pythonOlder
 , poetry-core
 , pytest
 , colored
-, pytestCheckHook
+, invoke
 }:
 
 buildPythonPackage rec {
   pname = "syrupy";
-  version = "3.0.6";
+  version = "4.0.1";
   format = "pyproject";
 
+  disabled = pythonOlder "3.8.1";
+
   src = fetchFromGitHub {
     owner = "tophat";
     repo = "syrupy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8DdPgah1cWVY9YZT78otlAv7X00iwxfi+Fkn3OmLgeM=";
+    hash = "sha256-BL1Z1hPMwU1duAZb3ZTWWKS/XGv8RJ6/4YoBhktd5NE=";
   };
 
   nativeBuildInputs = [
@@ -32,9 +35,17 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    pytestCheckHook
+    invoke
+    pytest
   ];
 
+  checkPhase = ''
+    runHook preCheck
+    # https://github.com/tophat/syrupy/blob/main/CONTRIBUTING.md#local-development
+    invoke test
+    runHook postCheck
+  '';
+
   meta = with lib; {
     changelog = "https://github.com/tophat/syrupy/releases/tag/v${version}";
     description = "Pytest Snapshot Test Utility";
diff --git a/pkgs/development/python-modules/systemd/default.nix b/pkgs/development/python-modules/systemd/default.nix
index b27af96edbd75..864bb2532ca12 100644
--- a/pkgs/development/python-modules/systemd/default.nix
+++ b/pkgs/development/python-modules/systemd/default.nix
@@ -1,31 +1,24 @@
 { lib
 , buildPythonPackage
-, fetchpatch
 , fetchFromGitHub
+, libredirect
 , systemd
 , pkg-config
+, pytest
+, python
 }:
 
 buildPythonPackage rec {
   pname = "systemd";
-  version = "234";
+  version = "235";
 
   src = fetchFromGitHub {
     owner = "systemd";
     repo = "python-systemd";
     rev = "v${version}";
-    sha256 = "1fakw7qln44mfd6pj4kqsgyrhkc6cyr653id34kv0rdnb1bvysrz";
+    sha256 = "sha256-8p4m4iM/z4o6PHRQIpuSXb64tPTWGlujEYCDVLiIt2o=";
   };
 
-  patches = [
-    # Fix runtime issues on Python 3.10
-    # https://github.com/systemd/python-systemd/issues/107
-    (fetchpatch {
-      url = "https://github.com/systemd/python-systemd/commit/c71bbac357f0ac722e1bcb2edfa925b68cca23c9.patch";
-      sha256 = "22s72Wa/BCwNNvwbxEUh58jhHlbA00SNwNVchVDovcc=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
   ];
@@ -34,8 +27,17 @@ buildPythonPackage rec {
     systemd
   ];
 
-  # No module named 'systemd._journal
-  doCheck = false;
+  nativeCheckInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    echo "12345678901234567890123456789012" > machine-id
+    export NIX_REDIRECTS=/etc/machine-id=$(realpath machine-id) \
+    LD_PRELOAD=${libredirect}/lib/libredirect.so
+
+    pytest $out/${python.sitePackages}/systemd
+  '';
 
   pythonImportsCheck = [
     "systemd.journal"
@@ -46,7 +48,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for native access to the systemd facilities";
-    homepage = "http://www.freedesktop.org/software/systemd/python-systemd/";
+    homepage = "https://www.freedesktop.org/software/systemd/python-systemd/";
+    changelog = "https://github.com/systemd/python-systemd/blob/v${version}/NEWS";
     license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/tensorflow/bin.nix b/pkgs/development/python-modules/tensorflow/bin.nix
index dcfa8e0e964c7..c9ed92712166e 100644
--- a/pkgs/development/python-modules/tensorflow/bin.nix
+++ b/pkgs/development/python-modules/tensorflow/bin.nix
@@ -57,7 +57,7 @@ in buildPythonPackage {
     platform = if stdenv.isDarwin then "mac" else "linux";
     unit = if cudaSupport then "gpu" else "cpu";
     key = "${platform}_py_${pyVerNoDot}_${unit}";
-  in fetchurl packages.${key};
+  in fetchurl (packages.${key} or {});
 
   propagatedBuildInputs = [
     astunparse
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index f7d920c372217..adc7b1c1e0b3f 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -17,7 +17,9 @@
 # that in nix as well. It would make some things easier and less confusing, but
 # it would also make the default tensorflow package unfree. See
 # https://groups.google.com/a/tensorflow.org/forum/#!topic/developers/iRCt5m4qUz0
-, cudaSupport ? false, cudaPackages ? {}
+, cudaSupport ? false
+, cudaPackages ? { }
+, cudaCapabilities ? cudaPackages.cudaFlags.cudaCapabilities
 , mklSupport ? false, mkl
 , tensorboardSupport ? true
 # XLA without CUDA is broken
@@ -30,7 +32,27 @@
 }:
 
 let
-  inherit (cudaPackages) cudatoolkit cudaFlags cudnn nccl;
+  originalStdenv = stdenv;
+in
+let
+  # Tensorflow looks at many toolchain-related variables which may diverge.
+  #
+  # Toolchain for cuda-enabled builds.
+  # We want to achieve two things:
+  # 1. NVCC should use a compatible back-end (e.g. gcc11 for cuda11)
+  # 2. Normal C++ files should be compiled with the same toolchain,
+  #    to avoid potential weird dynamic linkage errors at runtime.
+  #    This may not be necessary though
+  #
+  # Toolchain for Darwin:
+  # clang 7 fails to emit a symbol for
+  # __ZN4llvm11SmallPtrSetIPKNS_10AllocaInstELj8EED1Ev in any of the
+  # translation units, so the build fails at link time
+  stdenv =
+    if cudaSupport then cudaPackages.backendStdenv
+    else if originalStdenv.isDarwin then llvmPackages_11.stdenv
+    else originalStdenv;
+  inherit (cudaPackages) cudatoolkit cudnn nccl;
 in
 
 assert cudaSupport -> cudatoolkit != null
@@ -42,6 +64,7 @@ assert ! (stdenv.isDarwin && cudaSupport);
 let
   withTensorboard = (pythonOlder "3.6") || tensorboardSupport;
 
+  # FIXME: migrate to redist cudaPackages
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-merged";
     paths = [
@@ -54,10 +77,13 @@ let
     ];
   };
 
+  # Tensorflow expects bintools at hard-coded paths, e.g. /usr/bin/ar
+  # The only way to overcome that is to set GCC_HOST_COMPILER_PREFIX,
+  # but that path must contain cc as well, so we merge them
   cudatoolkit_cc_joined = symlinkJoin {
-    name = "${cudatoolkit.cc.name}-merged";
+    name = "${stdenv.cc.name}-merged";
     paths = [
-      cudatoolkit.cc
+      stdenv.cc
       binutils.bintools # for ar, dwp, nm, objcopy, objdump, strip
     ];
   };
@@ -173,12 +199,7 @@ let
     '';
   }) else _bazel-build;
 
-  _bazel-build = (buildBazelPackage.override (lib.optionalAttrs stdenv.isDarwin {
-    # clang 7 fails to emit a symbol for
-    # __ZN4llvm11SmallPtrSetIPKNS_10AllocaInstELj8EED1Ev in any of the
-    # translation units, so the build fails at link time
-    stdenv = llvmPackages_11.stdenv;
-  })) {
+  _bazel-build = buildBazelPackage.override { inherit stdenv; } {
     name = "${pname}-${version}";
     bazel = bazel_5;
 
@@ -209,12 +230,13 @@ let
       flatbuffers-core
       giflib
       grpc
-      icu
+      # Necessary to fix the "`GLIBCXX_3.4.30' not found" error
+      (icu.override { inherit stdenv; })
       jsoncpp
       libjpeg_turbo
       libpng
       lmdb-core
-      pybind11
+      (pybind11.overridePythonAttrs (_: { inherit stdenv; }))
       snappy
       sqlite
     ] ++ lib.optionals cudaSupport [
@@ -299,9 +321,11 @@ let
 
     TF_NEED_CUDA = tfFeature cudaSupport;
     TF_CUDA_PATHS = lib.optionalString cudaSupport "${cudatoolkit_joined},${cudnn},${nccl}";
+    TF_CUDA_COMPUTE_CAPABILITIES = lib.concatStringsSep "," cudaCapabilities;
+
+    # Needed even when we override stdenv: e.g. for ar
     GCC_HOST_COMPILER_PREFIX = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin";
-    GCC_HOST_COMPILER_PATH = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin/gcc";
-    TF_CUDA_COMPUTE_CAPABILITIES = builtins.concatStringsSep "," cudaFlags.cudaRealArches;
+    GCC_HOST_COMPILER_PATH = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin/cc";
 
     postPatch = ''
       # bazel 3.3 should work just as well as bazel 3.1
diff --git a/pkgs/development/python-modules/tesserocr/default.nix b/pkgs/development/python-modules/tesserocr/default.nix
index 9e3e1560c2083..f852e29c002c2 100644
--- a/pkgs/development/python-modules/tesserocr/default.nix
+++ b/pkgs/development/python-modules/tesserocr/default.nix
@@ -6,7 +6,7 @@
 , cython
 , leptonica
 , pkg-config
-, tesseract
+, tesseract4
 
 # propagates
 , pillow
@@ -36,7 +36,7 @@ buildPythonPackage rec {
 
   buildInputs = [
     leptonica
-    tesseract
+    tesseract4
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/textnets/default.nix b/pkgs/development/python-modules/textnets/default.nix
new file mode 100644
index 0000000000000..da3da57d35d91
--- /dev/null
+++ b/pkgs/development/python-modules/textnets/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, buildPythonPackage
+, cairocffi
+, cython
+, fetchFromGitHub
+, igraph
+, leidenalg
+, pandas
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+, scipy
+, setuptools
+, spacy
+, en_core_web_sm
+, toolz
+, tqdm
+, wasabi
+}:
+
+buildPythonPackage rec {
+  pname = "textnets";
+  version = "0.8.7";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "jboynyc";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-BBndY+3leJBxiImuyRL7gMD5eocE4i96+97I9hDEwec=";
+  };
+
+  nativeBuildInputs = [
+    cython
+    poetry-core
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    cairocffi
+    igraph
+    leidenalg
+    pandas
+    scipy
+    spacy
+    toolz
+    tqdm
+    wasabi
+  ];
+
+  # Deselect test of experimental feature that fails due to having an
+  # additional dependency.
+  disabledTests = [
+    "test_context"
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    en_core_web_sm
+  ];
+
+  pythonImportsCheck = [
+    "textnets"
+  ];
+
+  meta = with lib; {
+    description = "Text analysis with networks";
+    homepage = "https://textnets.readthedocs.io";
+    changelog = "https://github.com/jboynyc/textnets/blob/v${version}/HISTORY.rst";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ jboy ];
+  };
+}
diff --git a/pkgs/development/python-modules/textual/default.nix b/pkgs/development/python-modules/textual/default.nix
index 5decea07774d8..2b9a035c60dd3 100644
--- a/pkgs/development/python-modules/textual/default.nix
+++ b/pkgs/development/python-modules/textual/default.nix
@@ -59,6 +59,11 @@ buildPythonPackage rec {
     time-machine
   ];
 
+  disabledTestPaths = [
+    # snapshot tests require syrupy<4
+    "tests/snapshot_tests/test_snapshots.py"
+  ];
+
   pythonImportsCheck = [
     "textual"
   ];
diff --git a/pkgs/development/python-modules/thinc/default.nix b/pkgs/development/python-modules/thinc/default.nix
index e415bc17a7b3c..8deba357004ee 100644
--- a/pkgs/development/python-modules/thinc/default.nix
+++ b/pkgs/development/python-modules/thinc/default.nix
@@ -29,14 +29,14 @@
 
 buildPythonPackage rec {
   pname = "thinc";
-  version = "8.1.7";
+  version = "8.1.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Dwj20fxQ4ovxiBTKKxyAfNTVmpMNcTRZpnXghsR3mvk=";
+    hash = "sha256-NcZXy+2wT8W8JHhl1mWSHOw9Ve81+/zj7hogSGtyBoM=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/timeago/default.nix b/pkgs/development/python-modules/timeago/default.nix
index fa89cff6ebe80..6a84d909f3639 100644
--- a/pkgs/development/python-modules/timeago/default.nix
+++ b/pkgs/development/python-modules/timeago/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "timeago";
-  version = "1.0.15";
+  version = "1.0.16";
 
   src = fetchFromGitHub {
     owner = "hustcc";
     repo = pname;
     rev = version;
-    sha256 = "03vm7c02l4g2d1x33w382i1psk8i3an7xchk69yinha33fjj1cag";
+    sha256 = "sha256-PqORJKAVrjezU/yP2ky3gb1XsM8obDI3GQzi+mok/OM=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/tls-parser/default.nix b/pkgs/development/python-modules/tls-parser/default.nix
index 1c0669b72bea0..c9b317c3c22b1 100644
--- a/pkgs/development/python-modules/tls-parser/default.nix
+++ b/pkgs/development/python-modules/tls-parser/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "tls-parser";
-  version = "2.0.0";
+  version = "2.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "nabla-c0d3";
     repo = "tls_parser";
     rev = version;
-    hash = "sha256-A1lYRe1sHDoOFdF20DP+xRMcPBWzokIXFphIpaBmwBc=";
+    hash = "sha256-2XHhUDiJ1EctnYdxYFbNSVLF8dmHP9cZXjziOE9+Dew=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/toposort/default.nix b/pkgs/development/python-modules/toposort/default.nix
index 2559399b25c57..bc0185482fce8 100644
--- a/pkgs/development/python-modules/toposort/default.nix
+++ b/pkgs/development/python-modules/toposort/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "toposort";
-  version = "1.9";
+  version = "1.10";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-9Bo0SQ1Ek0tTOnva/5ee6KRyA/0tinRtuD8tWrEkWLk=";
+    sha256 = "sha256-v7tHnFPQppbqdAJgH05pPJewNng3yImLxkca38o3pr0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/torchmetrics/default.nix b/pkgs/development/python-modules/torchmetrics/default.nix
index efb51c9b9e93d..b22815bb50281 100644
--- a/pkgs/development/python-modules/torchmetrics/default.nix
+++ b/pkgs/development/python-modules/torchmetrics/default.nix
@@ -15,7 +15,7 @@
 
 let
   pname = "torchmetrics";
-  version = "0.11.2";
+  version = "0.11.3";
 in
 buildPythonPackage {
   inherit pname version;
@@ -24,7 +24,7 @@ buildPythonPackage {
     owner = "PyTorchLightning";
     repo = "metrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oeARQA7TtcplsvXvWVN4pcjj0BaMmHOJPZxGA55luI4=";
+    hash = "sha256-cyzAY5NKP+SgoZmwBBLsI0yQ1M4jdOB6/9+/k/+5mns=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix
index d36beb6575e09..8201d9c72b73c 100644
--- a/pkgs/development/python-modules/torchvision/default.nix
+++ b/pkgs/development/python-modules/torchvision/default.nix
@@ -1,30 +1,50 @@
-{ lib
-, symlinkJoin
-, buildPythonPackage
+{ buildPythonPackage
+, cudaSupport ? torch.cudaSupport or false # by default uses the value from torch
 , fetchFromGitHub
-, ninja
-, which
+, lib
 , libjpeg_turbo
 , libpng
+, ninja
 , numpy
-, scipy
 , pillow
-, torch
 , pytest
-, cudaSupport ? torch.cudaSupport or false # by default uses the value from torch
+, scipy
+, symlinkJoin
+, torch
+, which
 }:
 
 let
-  inherit (torch) gpuTargetString;
-  inherit (torch.cudaPackages) cudatoolkit cudnn;
+  inherit (torch) cudaPackages gpuTargetString;
+  inherit (cudaPackages) cudatoolkit cudaFlags cudaVersion;
+
+  # NOTE: torchvision doesn't use cudnn; torch does!
+  #   For this reason it is not included.
+  cuda-common-redist = with cudaPackages; [
+    cuda_cccl # <thrust/*>
+    libcublas # cublas_v2.h
+    libcusolver # cusolverDn.h
+    libcusparse # cusparse.h
+  ];
 
-  cudatoolkit_joined = symlinkJoin {
-    name = "${cudatoolkit.name}-unsplit";
-    paths = [ cudatoolkit.out cudatoolkit.lib ];
+  cuda-native-redist = symlinkJoin {
+    name = "cuda-native-redist-${cudaVersion}";
+    paths = with cudaPackages; [
+      cuda_cudart # cuda_runtime.h
+      cuda_nvcc
+    ] ++ cuda-common-redist;
   };
-in buildPythonPackage rec {
+
+  cuda-redist = symlinkJoin {
+    name = "cuda-redist-${cudaVersion}";
+    paths = cuda-common-redist;
+  };
+
   pname = "torchvision";
   version = "0.14.1";
+in
+buildPythonPackage {
+  inherit pname version;
 
   src = fetchFromGitHub {
     owner = "pytorch";
@@ -33,18 +53,21 @@ in buildPythonPackage rec {
     hash = "sha256-lKkEJolJQaLr1TVm44CizbJQedGa1wyy0cFWg2LTJN0=";
   };
 
-  nativeBuildInputs = [ libpng ninja which ]
-    ++ lib.optionals cudaSupport [ cudatoolkit_joined ];
-
-  TORCHVISION_INCLUDE = "${libjpeg_turbo.dev}/include/";
-  TORCHVISION_LIBRARY = "${libjpeg_turbo}/lib/";
+  nativeBuildInputs = [ libpng ninja which ] ++ lib.optionals cudaSupport [ cuda-native-redist ];
 
-  buildInputs = [ libjpeg_turbo libpng ]
-    ++ lib.optionals cudaSupport [ cudnn ];
+  buildInputs = [ libjpeg_turbo libpng ] ++ lib.optionals cudaSupport [ cuda-redist ];
 
   propagatedBuildInputs = [ numpy pillow torch scipy ];
 
-  preBuild = lib.optionalString cudaSupport ''
+  preConfigure = ''
+    export TORCHVISION_INCLUDE="${libjpeg_turbo.dev}/include/"
+    export TORCHVISION_LIBRARY="${libjpeg_turbo}/lib/"
+  ''
+  # NOTE: We essentially override the compilers provided by stdenv because we don't have a hook
+  #   for cudaPackages to swap in compilers supported by NVCC.
+  + lib.optionalString cudaSupport ''
+    export CC=${cudatoolkit.cc}/bin/cc
+    export CXX=${cudatoolkit.cc}/bin/c++
     export TORCH_CUDA_ARCH_LIST="${gpuTargetString}"
     export FORCE_CUDA=1
   '';
@@ -52,6 +75,7 @@ in buildPythonPackage rec {
   # tries to download many datasets for tests
   doCheck = false;
 
+  pythonImportsCheck = [ "torchvision" ];
   checkPhase = ''
     HOME=$TMPDIR py.test test --ignore=test/test_datasets_download.py
   '';
diff --git a/pkgs/development/python-modules/tplink-omada-client/default.nix b/pkgs/development/python-modules/tplink-omada-client/default.nix
index c51830b7fc7b6..9622e67b41b94 100644
--- a/pkgs/development/python-modules/tplink-omada-client/default.nix
+++ b/pkgs/development/python-modules/tplink-omada-client/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "tplink-omada-client";
-  version = "1.1.0";
+  version = "1.1.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "tplink_omada_client";
     inherit version;
-    hash = "sha256-p58W6PIYdimJz8Cdzv/rr8GRW1wLcb0jnhNxkbuQiBo=";
+    hash = "sha256-Ppo/vv15fcwN7qTiLO8umF6ig3C8k0Z974znviWcY8c=";
   };
 
   nativeBuildInputs = [
@@ -38,6 +38,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Library for the TP-Link Omada SDN Controller API";
     homepage = "https://github.com/MarkGodwin/tplink-omada-api";
+    changelog = "https://github.com/MarkGodwin/tplink-omada-api/releases/tag/release%2Fv${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/trove-classifiers/default.nix b/pkgs/development/python-modules/trove-classifiers/default.nix
index a662d1a1a504f..c8a33e9a545fa 100644
--- a/pkgs/development/python-modules/trove-classifiers/default.nix
+++ b/pkgs/development/python-modules/trove-classifiers/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "trove-classifiers";
-  version = "2023.2.20";
+  version = "2023.3.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hgsMDYyeDTJinKXvE36h5jdYC2NLdLpA4VOf00RkwPU=";
+    hash = "sha256-7kLy+MHUvP4190bkcvB2M1cNSF+rRUB+/8A3knCjuwM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tweepy/default.nix b/pkgs/development/python-modules/tweepy/default.nix
index e313818daf7df..ba4c7f8f9afef 100644
--- a/pkgs/development/python-modules/tweepy/default.nix
+++ b/pkgs/development/python-modules/tweepy/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "tweepy";
-  version = "4.12.1";
+  version = "4.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-jyH2qJoVFuNwZCOtl2CvuuMCpJXCvlxcaHJd7fT1XzA=";
+    hash = "sha256-47TXKZLS2j+YdCYt2cJbdzsVOHeRzGYqUNyOOKIgXkc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index e3a8b36ec44c4..7459a3981454b 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "7.16.4";
+  version = "7.16.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "twilio";
     repo = "twilio-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-OB7jW+I5oAE2TGPWmuIcXcABY1v1FMjo8UT83Xn4DB8=";
+    hash = "sha256-Z/A+NcB/LpzF3JtdDA7+h0scjGWOiYx5fwAZTuyfdug=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/twitchapi/default.nix b/pkgs/development/python-modules/twitchapi/default.nix
index 6200298b3be33..ce4c3cbee13e3 100644
--- a/pkgs/development/python-modules/twitchapi/default.nix
+++ b/pkgs/development/python-modules/twitchapi/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "twitchapi";
-  version = "3.8.0";
+  version = "3.9.0";
 
   disabled = pythonOlder "3.7";
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "twitchAPI";
     inherit version;
-    hash = "sha256-gGLSR6XESaUUt31njQJtPeTOKSgVJHlS+UdYhPKvQJQ=";
+    hash = "sha256-M3Jl3DGvjWdeqYOWmOSe/W9h9yZq4HVGrDR+5tEXBow=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/txi2p-tahoe/default.nix b/pkgs/development/python-modules/txi2p-tahoe/default.nix
new file mode 100644
index 0000000000000..3d891c6eeed1d
--- /dev/null
+++ b/pkgs/development/python-modules/txi2p-tahoe/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, setuptools-scm
+, parsley
+, twisted
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "txi2p-tahoe";
+  version = "0.3.7";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "tahoe-lafs";
+    repo = "txi2p";
+    rev = "refs/tags/${version}";
+    hash = "sha256-u/IOhxK9jWC/tTKKLsc4PexbCuki+yEtMNw7LuQKmuk=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  propagatedBuildInputs = [
+    parsley
+    twisted
+  ];
+
+  pythonImportsCheck = [ "txi2p" ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m twisted.trial txi2p
+    runHook postCheck
+  '';
+
+  meta = {
+    description = "I2P bindings for Twisted";
+    homepage = "https://github.com/tahoe-lafs/txi2p";
+    license = lib.licenses.isc;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/types-ujson/default.nix b/pkgs/development/python-modules/types-ujson/default.nix
new file mode 100644
index 0000000000000..5dda912997768
--- /dev/null
+++ b/pkgs/development/python-modules/types-ujson/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "types-ujson";
+  version = "5.7.0.1";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-VDUaYuwbZVDvsXr2PvfwwA0O+pwJnefaXGJ+HvooBVM=";
+  };
+
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ujson-stubs"
+  ];
+
+  meta = with lib; {
+    description = "Typing stubs for ujson";
+    homepage = "https://github.com/python/typeshed";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ centromere ];
+  };
+}
diff --git a/pkgs/development/python-modules/ulid-transform/default.nix b/pkgs/development/python-modules/ulid-transform/default.nix
new file mode 100644
index 0000000000000..d53281f5f062b
--- /dev/null
+++ b/pkgs/development/python-modules/ulid-transform/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, cython
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "ulid-transform";
+  version = "0.4.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "bdraco";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-JuTIE8FAVZkfn+byJ1z9/ep9Oih1uXpz/QTB2OfM0WU=";
+  };
+
+  nativeBuildInputs = [
+    cython
+    poetry-core
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace " --cov=ulid_transform --cov-report=term-missing:skip-covered" ""
+  '';
+
+  pythonImportsCheck = [
+    "ulid_transform"
+  ];
+
+  meta = with lib; {
+    description = "Library to create and transform ULIDs";
+    homepage = "https://github.com/bdraco/ulid-transform";
+    changelog = "https://github.com/bdraco/ulid-transform/releases/tag/v${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/unidiff/default.nix b/pkgs/development/python-modules/unidiff/default.nix
index c34e70eb9d265..85ec596a89121 100644
--- a/pkgs/development/python-modules/unidiff/default.nix
+++ b/pkgs/development/python-modules/unidiff/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "unidiff";
-  version = "0.7.4";
+  version = "0.7.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2bbcbc986e1fb97f04b1d7b864aa6002ab02f4d8a996bf03aa6e5a81447d1fc5";
+    sha256 = "2e5f0162052248946b9f0970a40e9e124236bf86c82b70821143a6fc1dea2574";
   };
 
   nativeCheckInputs = [ unittestCheckHook ];
diff --git a/pkgs/development/python-modules/unrardll/default.nix b/pkgs/development/python-modules/unrardll/default.nix
index f0a0cbbf17590..e6d746165144e 100644
--- a/pkgs/development/python-modules/unrardll/default.nix
+++ b/pkgs/development/python-modules/unrardll/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "unrardll";
-  version = "0.1.5";
+  version = "0.1.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8bebb480b96cd49d4290d814914f39cff75cf0fa0514c4790bb32b1757227c78";
+    sha256 = "sha256-4QZ/4nu03iBO+PNpLyPZPF07QpL3iyksb8fcT3V0n3Y=";
   };
 
   buildInputs = [ unrar ];
diff --git a/pkgs/development/python-modules/unrpa/default.nix b/pkgs/development/python-modules/unrpa/default.nix
index aad23c6fdf9f4..eeddbd1d6b62e 100644
--- a/pkgs/development/python-modules/unrpa/default.nix
+++ b/pkgs/development/python-modules/unrpa/default.nix
@@ -1,22 +1,34 @@
-{ lib, buildPythonPackage, fetchPypi, uncompyle6, isPy27 }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, uncompyle6
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "unrpa";
   version = "2.3.0";
+  format = "setuptools";
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "0yl4qdwp3in170ks98qnldqz3r2iyzil5g1775ccg98qkh95s724";
   };
 
-  propagatedBuildInputs = [ uncompyle6 ];
+  passthru.optional-dependencies = {
+    ZiX = [ uncompyle6 ];
+  };
 
   pythonImportsCheck = [ "unrpa" ];
 
+  # upstream has no unit tests
+  doCheck = false;
+
   meta = with lib; {
     homepage = "https://github.com/Lattyware/unrpa";
+    changelog = "https://github.com/Lattyware/unrpa/releases/tag/${version}";
     description = "A program to extract files from the RPA archive format";
     license = licenses.gpl3;
     maintainers = with maintainers; [ leo60228 ];
diff --git a/pkgs/development/python-modules/vdirsyncer/default.nix b/pkgs/development/python-modules/vdirsyncer/default.nix
index 418850444c7f2..034998fc904b2 100644
--- a/pkgs/development/python-modules/vdirsyncer/default.nix
+++ b/pkgs/development/python-modules/vdirsyncer/default.nix
@@ -24,21 +24,18 @@
 
 buildPythonPackage rec {
   pname = "vdirsyncer";
-  version = "0.19.0";
-  format = "setuptools";
+  version = "0.19.1";
+  format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256:0995bavlv8s9j0127ncq3yzy5p72lam9qgpswyjfanc6l01q87lf";
+    hash = "sha256-qnbHclqlpxH2N0vFzYO+eKrmjHSCljWp7Qc81MCfA64=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "click-log>=0.3.0, <0.4.0" "click-log>=0.3.0, <0.5.0"
-
-    sed -i -e '/--cov/d' -e '/--no-cov/d' setup.cfg
+    sed -i -e '/--cov/d' -e '/--no-cov/d' pyproject.toml
   '';
 
   propagatedBuildInputs = [
@@ -53,10 +50,6 @@ buildPythonPackage rec {
     aiohttp-oauthlib
   ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
-
   nativeCheckInputs = [
     hypothesis
     pytestCheckHook
diff --git a/pkgs/development/python-modules/velbus-aio/default.nix b/pkgs/development/python-modules/velbus-aio/default.nix
index 3c7b7ba032542..881c24d25b129 100644
--- a/pkgs/development/python-modules/velbus-aio/default.nix
+++ b/pkgs/development/python-modules/velbus-aio/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "velbus-aio";
-  version = "2022.12.0";
+  version = "2023.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Cereal2nd";
     repo = pname;
     rev = version;
-    hash = "sha256-hhomNynH2X2tnCzVBmyF/sYsHLHyGGaR9oX6M7kcWVc=";
+    hash = "sha256-y8M9Zf/CMM7NH0Sr7E9sx7JnOFGlExEk7cFEGrHBi7g=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/python-modules/vertica-python/default.nix b/pkgs/development/python-modules/vertica-python/default.nix
index 11bf821e0e6cf..2c30bcf8a49f0 100644
--- a/pkgs/development/python-modules/vertica-python/default.nix
+++ b/pkgs/development/python-modules/vertica-python/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "vertica-python";
-  version = "1.3.0";
+  version = "1.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UC8RkZCRodsK4DV0Pnn2jUohM7pNiqGWrbjWlDqn72I=";
+    hash = "sha256-Ju7talF2Tyz6P51XfVea22eKM/wDUP3ugcAWj2tB4CA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/viv-utils/default.nix b/pkgs/development/python-modules/viv-utils/default.nix
index f70d4771ba6c6..62b528e71db86 100644
--- a/pkgs/development/python-modules/viv-utils/default.nix
+++ b/pkgs/development/python-modules/viv-utils/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Utilities for working with vivisect";
     homepage = "https://github.com/williballenthin/viv-utils";
+    changelog = "https://github.com/williballenthin/viv-utils/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = teams.determinatesystems.members;
   };
diff --git a/pkgs/development/python-modules/voluptuous-serialize/default.nix b/pkgs/development/python-modules/voluptuous-serialize/default.nix
index 2cb55c69cec7a..f35ab607a07c1 100644
--- a/pkgs/development/python-modules/voluptuous-serialize/default.nix
+++ b/pkgs/development/python-modules/voluptuous-serialize/default.nix
@@ -8,25 +8,30 @@
 
 buildPythonPackage rec  {
   pname = "voluptuous-serialize";
-  version = "2.5.0";
+  version = "2.6.0";
+  format = "setuptools";
 
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-8rWMz8tBanxHdU/F4HhBxxz3ltqbdRoP4JED2dmZfTk=";
+    repo = "voluptuous-serialize";
+    rev = "refs/tags/${version}";
+    hash = "sha256-vvreXSQDkA3JkZpOKZqJgMRyObJX/cSR8r+A26h9fNE=";
   };
 
-  propagatedBuildInputs = [ voluptuous ];
+  propagatedBuildInputs = [
+    voluptuous
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
     voluptuous
   ];
 
-  pythonImportsCheck = [ "voluptuous_serialize" ];
+  pythonImportsCheck = [
+    "voluptuous_serialize"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/home-assistant-libs/voluptuous-serialize";
diff --git a/pkgs/development/python-modules/vsure/default.nix b/pkgs/development/python-modules/vsure/default.nix
index 1551ab31183e6..b51622ed077d0 100644
--- a/pkgs/development/python-modules/vsure/default.nix
+++ b/pkgs/development/python-modules/vsure/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "vsure";
-  version = "2.6.0";
+  version = "2.6.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KMLW1270Xs9s2a4ROWTvwRpfr4n4RO9rIYlskNjGzFQ=";
+    hash = "sha256-D6Q76L1BVx5hpFSShP1rUOmgTogEO+6Jj5x8GaepC+c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/vulcan-api/default.nix b/pkgs/development/python-modules/vulcan-api/default.nix
index bde97b8e1245d..a3e4c0c561a81 100644
--- a/pkgs/development/python-modules/vulcan-api/default.nix
+++ b/pkgs/development/python-modules/vulcan-api/default.nix
@@ -3,7 +3,7 @@
 , aiodns
 , aiohttp
 , buildPythonPackage
-, cchardet
+, faust-cchardet
 , fetchFromGitHub
 , pyopenssl
 , pythonOlder
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "vulcan-api";
-  version = "2.2.1";
+  version = "2.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -25,14 +25,14 @@ buildPythonPackage rec {
     owner = "kapi2289";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-0V1skTJdiL04jVKsMb0Kysbw36bQ3EAJG3YT7ik36zQ=";
+    hash = "sha256-5Tj611p4wYn7GjoCtCTRhUZkKyAJglHcci76ciVFWik=";
   };
 
   propagatedBuildInputs = [
     aenum
     aiodns
     aiohttp
-    cchardet
+    faust-cchardet
     pyopenssl
     pytz
     related
diff --git a/pkgs/development/python-modules/websockify/default.nix b/pkgs/development/python-modules/websockify/default.nix
index e1f311ba027b4..8b0401b72fbe0 100644
--- a/pkgs/development/python-modules/websockify/default.nix
+++ b/pkgs/development/python-modules/websockify/default.nix
@@ -1,29 +1,50 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, jwcrypto
 , numpy
+, pytestCheckHook
+, pythonOlder
+, redis
+, requests
+, simplejson
 }:
 
 buildPythonPackage rec {
-  version = "0.10.0";
   pname = "websockify";
+  version = "0.11.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6c4cc1bc132abb4a99834bcb1b4bd72f51d35a08d08093a817646ecc226ac44e";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "novnc";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-82Fk9qbiiCD5Rts1d14sK/njeN7DcjKMKPqE7S/1WHs=";
   };
 
-  propagatedBuildInputs = [ numpy ];
+  propagatedBuildInputs = [
+    jwcrypto
+    numpy
+    redis
+    requests
+    simplejson
+  ];
 
-  # Ran 0 tests in 0.000s
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-  pythonImportsCheck = [ "websockify" ];
+  pythonImportsCheck = [
+    "websockify"
+  ];
 
   meta = with lib; {
     description = "WebSockets support for any application/server";
     homepage = "https://github.com/kanaka/websockify";
-    license = licenses.lgpl3;
+    changelog = "https://github.com/novnc/websockify/releases/tag/v${version}";
+    license = licenses.lgpl3Only;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/weconnect-mqtt/default.nix b/pkgs/development/python-modules/weconnect-mqtt/default.nix
index efdf7cb844679..5803f20c07a3e 100644
--- a/pkgs/development/python-modules/weconnect-mqtt/default.nix
+++ b/pkgs/development/python-modules/weconnect-mqtt/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "weconnect-mqtt";
-  version = "0.42.1";
+  version = "0.42.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -19,15 +19,9 @@ buildPythonPackage rec {
     owner = "tillsteinbach";
     repo = "WeConnect-mqtt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/YCrnDOJdKc687pRKj1gVTOTj7dEpplN49VuFJOlQIE=";
+    hash = "sha256-TEB2UtXH73CCJhbuQjnABcG3XLHB6VybDwjhixnpt0w=";
   };
 
-  propagatedBuildInputs = [
-    paho-mqtt
-    python-dateutil
-    weconnect
-  ] ++ weconnect.optional-dependencies.Images;
-
   postPatch = ''
     substituteInPlace weconnect_mqtt/__version.py \
       --replace "develop" "${version}"
@@ -36,6 +30,12 @@ buildPythonPackage rec {
       --replace "pytest-cov" ""
   '';
 
+  propagatedBuildInputs = [
+    paho-mqtt
+    python-dateutil
+    weconnect
+  ] ++ weconnect.optional-dependencies.Images;
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/weconnect/default.nix b/pkgs/development/python-modules/weconnect/default.nix
index 0cbd788f637dc..385ea1ea45386 100644
--- a/pkgs/development/python-modules/weconnect/default.nix
+++ b/pkgs/development/python-modules/weconnect/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "weconnect";
-  version = "0.54.1";
+  version = "0.54.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "tillsteinbach";
     repo = "WeConnect-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WNvEcx+Ut4CtL2L81u5fCfmZoi+5hi/CbB9mfrG8Hm4=";
+    hash = "sha256-Zjh4rWnpzzBZFQRZIoceeIn4DYn0/HqLLZFhc57yhLQ=";
   };
 
   propagatedBuildInputs = [
@@ -48,7 +48,8 @@ buildPythonPackage rec {
       --replace "setup_requires=SETUP_REQUIRED," "setup_requires=[]," \
       --replace "tests_require=TEST_REQUIRED," "tests_require=[],"
     substituteInPlace image_extra_requirements.txt \
-      --replace "pillow~=9.4.0" "pillow"
+      --replace "pillow~=" "pillow>=" \
+      --replace "ascii_magic~=" "ascii_magic>="
     substituteInPlace pytest.ini \
       --replace "--cov=weconnect --cov-config=.coveragerc --cov-report html" "" \
       --replace "pytest-cov" ""
diff --git a/pkgs/development/python-modules/xknx/default.nix b/pkgs/development/python-modules/xknx/default.nix
index af7f10e3fd8d5..bada705c78d87 100644
--- a/pkgs/development/python-modules/xknx/default.nix
+++ b/pkgs/development/python-modules/xknx/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "xknx";
-  version = "2.4.0";
+  version = "2.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "XKNX";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-MSk/c2qLztq5GQ6+CzK0Jw+rOJTClguaoL284YaBPjw=";
+    hash = "sha256-ivqUego6a9ieSxgHKd3szVAE23zMI54nYqbZjHIgVVE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/yaramod/default.nix b/pkgs/development/python-modules/yaramod/default.nix
index 11a1caf15b74f..2de6d701399ab 100644
--- a/pkgs/development/python-modules/yaramod/default.nix
+++ b/pkgs/development/python-modules/yaramod/default.nix
@@ -20,7 +20,7 @@ let
 in
   buildPythonPackage rec {
     pname = "yaramod";
-    version = "3.12.2";
+    version = "3.19.0";
     format = "setuptools";
 
     disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ in
       owner = "avast";
       repo = pname;
       rev = "refs/tags/v${version}";
-      hash = "sha256-1q+lzNtm8qko9ZAxJjkmPOQjHD5GxB6YyEz0tr+QWGk=";
+      hash = "sha256-psoFdYETXztPJfOZyfES5ujcUDBp/X7sY/puP66E0Ok=";
     };
 
     postPatch = ''
diff --git a/pkgs/development/python-modules/yattag/default.nix b/pkgs/development/python-modules/yattag/default.nix
index 6bac02af7f80b..9fd5e993ec986 100644
--- a/pkgs/development/python-modules/yattag/default.nix
+++ b/pkgs/development/python-modules/yattag/default.nix
@@ -1,17 +1,29 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "yattag";
-  version = "1.15.0";
+  version = "1.15.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ap/z/TMKYCh4BOpzcKhBZrYk6/S3rZ7XiLfFd3m2UmM=";
+    hash = "sha256-lg+lS+EinZb0MXgTPgsZXAAzkf3Ens22tptzdNtr5BY=";
   };
 
+  pythonImportsCheck = [
+    "yattag"
+  ];
+
   meta = with lib; {
-    description = "Generate HTML or XML in a pythonic way. Pure python alternative to web template engines. Can fill HTML forms with default values and error messages.";
-    license = [ licenses.lgpl21 ];
+    description = "Library to generate HTML or XML";
     homepage = "https://www.yattag.org/";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/yolink-api/default.nix b/pkgs/development/python-modules/yolink-api/default.nix
index e882a48c6332b..b3cda18f7789f 100644
--- a/pkgs/development/python-modules/yolink-api/default.nix
+++ b/pkgs/development/python-modules/yolink-api/default.nix
@@ -2,15 +2,17 @@
 , aiohttp
 , buildPythonPackage
 , fetchFromGitHub
-, paho-mqtt
+, asyncio-mqtt
 , pydantic
 , pythonOlder
+, setuptools
+, tenacity
 }:
 
 buildPythonPackage rec {
   pname = "yolink-api";
-  version = "0.1.5";
-  format = "setuptools";
+  version = "0.2.8";
+  format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
@@ -18,13 +20,18 @@ buildPythonPackage rec {
     owner = "YoSmart-Inc";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-6Ch17aKUT8jVUo+pYD5EvydEzP/TTjLtgkUQJnHYkKg=";
+    hash = "sha256-dcuP2VPAp3Na1o9DV3bPejCrtaIxvt+g/vRaQYqI67Q=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
-    paho-mqtt
+    asyncio-mqtt
     pydantic
+    tenacity
   ];
 
   # Module has no tests
diff --git a/pkgs/development/python-modules/youless-api/default.nix b/pkgs/development/python-modules/youless-api/default.nix
index c5f5b7f1f3d2e..3fc465d9bad10 100644
--- a/pkgs/development/python-modules/youless-api/default.nix
+++ b/pkgs/development/python-modules/youless-api/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "youless-api";
-  version = "1.0";
+  version = "1.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "jongsoftdev";
     repo = "youless-python-bridge";
     rev = version;
-    hash = "sha256-yh4ZmMn5z6aTZrhj9ZmvpmsDOF4MeDcPtSgr4fimjGM=";
+    hash = "sha256-49/HmkGr87aDhr8GEtARpXvr2RcgmLdAqhvMLI5x+vQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix
index 9c2b3945642b0..c5521f0f0d6b1 100644
--- a/pkgs/development/python-modules/zeroconf/default.nix
+++ b/pkgs/development/python-modules/zeroconf/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.47.1";
+  version = "0.47.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "jstasiak";
     repo = "python-zeroconf";
     rev = "refs/tags/${version}";
-    hash = "sha256-vY4n0QIEzumtUayRbGGqycR3z7kpbOH4XKxSMcnTVrA=";
+    hash = "sha256-hpbJ7kcyM8S2xAaVjuPzHXl/gcAYk3CX7NHxsbZXQ10=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/zigpy-znp/default.nix b/pkgs/development/python-modules/zigpy-znp/default.nix
index f1b846e9482bb..e4d6ddad8de31 100644
--- a/pkgs/development/python-modules/zigpy-znp/default.nix
+++ b/pkgs/development/python-modules/zigpy-znp/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "zigpy-znp";
-  version = "0.9.2";
+  version = "0.9.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-orJDOnkZH9siDg8H8M8C0UTxJfWPTB+gBNtUM6s4F94=";
+    sha256 = "sha256-UTL7g9tIXtMVeBRq5Fdw5VqUB9H/LaobASwHlFPoO2s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zwave-js-server-python/default.nix b/pkgs/development/python-modules/zwave-js-server-python/default.nix
index 3a759b15815e0..ca8b65b341373 100644
--- a/pkgs/development/python-modules/zwave-js-server-python/default.nix
+++ b/pkgs/development/python-modules/zwave-js-server-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "zwave-js-server-python";
-  version = "0.44.0";
+  version = "0.46.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-AG8LXdQvutlgeg7543bDx8Znidf67CzusnnD6GOakf4=";
+    hash = "sha256-EeQ0gUSDsHIJnp1Oc2Imld4ZFa5maX8xj6GzchHlCoc=";
   };
 
   propagatedBuildInputs = [