pioreactor

View on PyPIReverse Dependencies (0)

25.1.21 pioreactor-25.1.21-py3-none-any.whl

Wheel Details

Project: pioreactor
Version: 25.1.21
Filename: pioreactor-25.1.21-py3-none-any.whl
Download: [link]
Size: 236089
MD5: 294a8a20d401d5afb6e8a609fb7cc2d9
SHA256: c569278999c128e5497780dde7687f0a73e7d2f74b0a37da51a5521f72b446c8
Uploaded: 2025-01-21 16:05:49 +0000

dist-info

METADATA

Metadata-Version: 2.2
Name: pioreactor
Version: 25.1.21
Summary: The core Python app of the Pioreactor. Control your bioreactor through Python.
Author: Pioreactor
Author-Email: hello[at]pioreactor.com
Home-Page: https://github.com/pioreactor/pioreactor
License: MIT
Keywords: microbiology,bioreactor,turbidostat,raspberry pi,education,research
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: System :: Hardware
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: Development Status :: 5 - Production/Stable
Requires-Python: >=3.11
Requires-Dist: click (==8.1.7)
Requires-Dist: paho-mqtt (==2.1.0)
Requires-Dist: JSON-log-formatter (==0.5.1)
Requires-Dist: colorlog (==6.7.0)
Requires-Dist: msgspec (==0.19.0)
Requires-Dist: crudini (==0.9.5)
Requires-Dist: iniparse (==0.5)
Requires-Dist: blinker (==1.9.0)
Requires-Dist: Flask (==3.1.0)
Requires-Dist: flup6 (==1.1.1)
Requires-Dist: huey (==2.5.2)
Requires-Dist: itsdangerous (==2.2.0)
Requires-Dist: Jinja2 (==3.1.4)
Requires-Dist: MarkupSafe (==2.1.5)
Requires-Dist: python-dotenv (==1.0.1)
Requires-Dist: Werkzeug (==3.1.0)
Requires-Dist: packaging (==24.1)
Requires-Dist: Adafruit-Blinka (==8.43.0); extra == "worker"
Requires-Dist: adafruit-circuitpython-ads1x15 (==2.2.23); extra == "worker"
Requires-Dist: adafruit-circuitpython-busdevice (==5.2.9); extra == "worker"
Requires-Dist: adafruit-circuitpython-connectionmanager (==3.1.1); extra == "worker"
Requires-Dist: adafruit-circuitpython-requests (==4.1.3); extra == "worker"
Requires-Dist: adafruit-circuitpython-typing (==1.10.3); extra == "worker"
Requires-Dist: Adafruit-PlatformDetect (==3.71.0); extra == "worker"
Requires-Dist: Adafruit-PureIO (==1.1.11); extra == "worker"
Requires-Dist: DAC43608 (==0.2.7); extra == "worker"
Requires-Dist: plotext (==5.2.8); extra == "worker"
Requires-Dist: pyftdi (==0.55.4); extra == "worker"
Requires-Dist: pyserial (==3.5); extra == "worker"
Requires-Dist: pyusb (==1.2.1); extra == "worker"
Requires-Dist: rpi_hardware_pwm (==0.2.1); extra == "worker"
Requires-Dist: Adafruit-Blinka (==8.43.0); extra == "leader-worker"
Requires-Dist: adafruit-circuitpython-ads1x15 (==2.2.23); extra == "leader-worker"
Requires-Dist: adafruit-circuitpython-busdevice (==5.2.9); extra == "leader-worker"
Requires-Dist: adafruit-circuitpython-connectionmanager (==3.1.1); extra == "leader-worker"
Requires-Dist: adafruit-circuitpython-requests (==4.1.3); extra == "leader-worker"
Requires-Dist: adafruit-circuitpython-typing (==1.10.3); extra == "leader-worker"
Requires-Dist: Adafruit-PlatformDetect (==3.71.0); extra == "leader-worker"
Requires-Dist: Adafruit-PureIO (==1.1.11); extra == "leader-worker"
Requires-Dist: DAC43608 (==0.2.7); extra == "leader-worker"
Requires-Dist: plotext (==5.2.8); extra == "leader-worker"
Requires-Dist: pyftdi (==0.55.4); extra == "leader-worker"
Requires-Dist: pyserial (==3.5); extra == "leader-worker"
Requires-Dist: pyusb (==1.2.1); extra == "leader-worker"
Requires-Dist: rpi_hardware_pwm (==0.2.1); extra == "leader-worker"
Requires-Dist: Adafruit-Blinka (==8.43.0); extra == "leader"
Requires-Dist: adafruit-circuitpython-ads1x15 (==2.2.23); extra == "leader"
Requires-Dist: adafruit-circuitpython-busdevice (==5.2.9); extra == "leader"
Requires-Dist: adafruit-circuitpython-connectionmanager (==3.1.1); extra == "leader"
Requires-Dist: adafruit-circuitpython-requests (==4.1.3); extra == "leader"
Requires-Dist: adafruit-circuitpython-typing (==1.10.3); extra == "leader"
Requires-Dist: Adafruit-PlatformDetect (==3.71.0); extra == "leader"
Requires-Dist: Adafruit-PureIO (==1.1.11); extra == "leader"
Requires-Dist: DAC43608 (==0.2.7); extra == "leader"
Requires-Dist: plotext (==5.2.8); extra == "leader"
Requires-Dist: pyftdi (==0.55.4); extra == "leader"
Requires-Dist: pyserial (==3.5); extra == "leader"
Requires-Dist: pyusb (==1.2.1); extra == "leader"
Requires-Dist: rpi_hardware_pwm (==0.2.1); extra == "leader"
Provides-Extra: worker
Provides-Extra: leader-worker
Provides-Extra: leader
Description-Content-Type: text/markdown
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary
License-File: LICENSE
[Description omitted; length: 1391 characters]

WHEEL

Wheel-Version: 1.0
Generator: setuptools (75.8.0)
Root-Is-Purelib: true
Tag: py3-none-any

RECORD

Path Digest Size
pioreactor/__init__.py sha256=YBDDaFMxxsG_1Dg9ss9llZcW95gAh8WqpcdCjhF0T-E 117
pioreactor/config.py sha256=__BqNHVbP9emI_y0rFPm7KfOo7HqtGT-J39OU1VfzuE 7228
pioreactor/error_codes.py sha256=XDfT3fPTVKN9wIGM9DdrXdvrEUn7lQkf6CJd8Xj_vFo 265
pioreactor/exc.py sha256=6PcAwZD75Oaum8B6vpQwmnwueY1GxT_KYNC9vJPwDUM 1475
pioreactor/hardware.py sha256=BGu_RdYOmpBTJGtOcut6AsaMEkrPNljiLekqkvTV9dc 3959
pioreactor/logging.py sha256=DXpxafvm0um5j_5Q839H2oU-LxfTqpOgtojdTTs_Cuc 7027
pioreactor/mureq.py sha256=KgYW70FtvammxNgkm-8gTlAm3vIROlRFqMVpYwHDEw0 14970
pioreactor/pubsub.py sha256=RavPFdLagQ1Kpl3DIyxwHCxwsu2okZ1i8Gx1ivLcGKM 13599
pioreactor/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
pioreactor/structs.py sha256=vvmUQwxQ2b6koZ2mfnEorMRerlX6RRhIUpYJRiFQaHk 9134
pioreactor/types.py sha256=blFtVDrflRou0UzN7wmxwsaHCBJ5vYohhafblxE4F_U 3406
pioreactor/version.py sha256=PI1Urb57IR4nLfhKeg2qZhfLb1Qkn6pa2RkaZatluL0 3026
pioreactor/whoami.py sha256=yfoXhpzi_tIbDAflz2hSpFqt3HaSuzrDf4VbniMhTug 5936
pioreactor/actions/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
pioreactor/actions/led_intensity.py sha256=u83c19V_0a4Uw7df6sKk67iESPBGnDvD81HMNfQdsTA 8963
pioreactor/actions/od_blank.py sha256=8OSgZKHWIsGfEogtubGNPxFp3C1pw2eWRSpC-Oj_p_k 9718
pioreactor/actions/pump.py sha256=X3hfJUNl7Nn6xJxEG4mfFOYobUztgdzHkZAkeBNw9Ew 22196
pioreactor/actions/self_test.py sha256=uiIgD_6_RFZFnCvPhTGu0pwcvyGCLik_R501i-RLsOI 22388
pioreactor/actions/leader/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
pioreactor/actions/leader/backup_database.py sha256=lpuMdhBx-lvtdFhhFcXRtGgdgXzHHG2Edc4syTgmNSc 5041
pioreactor/actions/leader/experiment_profile.py sha256=U8ajyNsVa8L1NuxKmbshplgBMn0v3V1lmHhIDpUTZyM 33614
pioreactor/actions/leader/export_experiment_data.py sha256=L3j2YrNnEp3AEcogstAxZ2aYzkTZPm76u55-87rwIcA 10842
pioreactor/automations/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
pioreactor/automations/base.py sha256=taaZKNxdu1Ngx10dZ7vOOPhJ4zSwqCbuVJ7dqn0Bm0c 2851
pioreactor/automations/dosing/__init__.py sha256=GDdHhZYHFWJX2rC-NshUeqeaR8m5i6i2F6zqQJ89Lfw 475
pioreactor/automations/dosing/base.py sha256=nSVFZuillfh36lKlsC8sTE9yskIal2G-QUp_vwChVY8 261
pioreactor/automations/dosing/chemostat.py sha256=A_wPyNQh3KIqvOieZe2mgs1U_RE_rNejHsZClkjbBv4 1353
pioreactor/automations/dosing/fed_batch.py sha256=s8KDUBxATliBYQI_cvUSsvZmuOvM4ep-xh6DrkbJbOo 1421
pioreactor/automations/dosing/pid_morbidostat.py sha256=VHudGnCW01bjPqYb9LbVjVmGZ7-WbW3aKVP9-zYDHlc 4896
pioreactor/automations/dosing/silent.py sha256=UfYL7mVBMH71rqd35eZ9pDDWikz7DmCnkJGfiSXy6qA 476
pioreactor/automations/dosing/turbidostat.py sha256=bRQFFIcrizwkgLwgCxS1GYml33Tbh2Qh4JhfIgIPlt4 5037
pioreactor/automations/events/__init__.py sha256=vwxPCMfzjMoolUt7-V7Yh9cuEznZIuY1eoODKwwh8hE 455
pioreactor/automations/led/__init__.py sha256=xORzMVttUCZqKLhMoGGKgP04e-nDLbZ3lIC2QxDe2JI 145
pioreactor/automations/led/base.py sha256=jsgg6eh9JeawILDxRtG8iO9SstcgSmvfRkHun5hqTdM 249
pioreactor/automations/led/light_dark_cycle.py sha256=FtqCTkRphfN1xgi8VrwtfMH4v9oS28WqPSFR-elYgus 3830
pioreactor/automations/led/silent.py sha256=eAuDqrjZK9z0uM9YcGLOOoW8HqfKJzTv-VE2CBRaU2s 532
pioreactor/automations/temperature/__init__.py sha256=rxAitEYRWPQqFWvGUl_XIe9FwyzwRVQTQmaReafOfBM 154
pioreactor/automations/temperature/base.py sha256=FsCPfsWW3MtabEjz2QRHLdJ_MUy_FRNPoKeg4f5VQ1I 282
pioreactor/automations/temperature/only_record_temperature.py sha256=DB-6Dxn_CQ54YoNKsD46F6EnKi2o5kJDKkhfqB0ekKI 561
pioreactor/automations/temperature/thermostat.py sha256=y50fVd6987kFx32JyJaMk3ahbQwqQW8eyYDNxMxEjNE 3540
pioreactor/background_jobs/__init__.py sha256=2jtsJMWSJa3DZO8u1D0_lok-UErh-Qk1t2DwPveAmCM 59
pioreactor/background_jobs/base.py sha256=pv4-AJwV1JJ-Cvtum6rPFwzb3X6MuCYTnFPpicNK_Mw 46732
pioreactor/background_jobs/dosing_automation.py sha256=vhf7-vFtLVeulmXbl4PIIz-IYmng7BLF_yKSsXuPzhI 29862
pioreactor/background_jobs/growth_rate_calculating.py sha256=8JBFAlpDHvPoxalsNKmTxz8s-yKu8VYFqQIC7AXJsd8 21959
pioreactor/background_jobs/led_automation.py sha256=64DZyXLiCK4b5pZs6cFQnjRy-1-dUcvMKUBx5vsMrVk 12593
pioreactor/background_jobs/monitor.py sha256=YBWcbpQdGud1g6_RrMYQxm5iThYp70cReO1Nkva1j74 24335
pioreactor/background_jobs/od_reading.py sha256=brPrIWYTAyXVplRhkHMvcR_kIcO5S5DYcX57aNKTcC8 51592
pioreactor/background_jobs/stirring.py sha256=kZBG-ZmnQywVFzWNJX28w7CLsz6pmSJBQXiC6UhOg5I 20240
pioreactor/background_jobs/temperature_automation.py sha256=UDpO5j8U9000uglxg7K6m0uQOctBEVwaREv0bc6WkKc 26513
pioreactor/background_jobs/leader/__init__.py sha256=Uhl2Xksfkf06lmfmz2scTxmBWDBnwkA9rSil_V94aWQ 605
pioreactor/background_jobs/leader/mqtt_to_db_streaming.py sha256=2JjaEIMgZtqC5NpKXvXa3X_jdzBgMesiUKYxA3pC6Xg 17624
pioreactor/calibrations/__init__.py sha256=4AQEgM3CSD4tRMHba-NyxgdPJpFzjDqI4UoqAEy355E 4548
pioreactor/calibrations/od_calibration.py sha256=FNjnwYzKcsOwZr9qc1361I5gl5XQKtqRDQDsQnc344k 14921
pioreactor/calibrations/pump_calibration.py sha256=MslHuyB-fsOKOmMi31ZJJbB1GtTkOS12c4z4uubnDu0 13275
pioreactor/calibrations/stirring_calibration.py sha256=kHy3OVhqKTbCudbxAJc8ZYO143ymQt9awVz7-l2j6k4 4907
pioreactor/calibrations/utils.py sha256=9exfAFhV87yCr8G3JVKzooyOUCFWRajuP5mqvXOQEbw 4649
pioreactor/cli/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
pioreactor/cli/calibrations.py sha256=ZFy0RZclg3HMS8NGSs5nHOSvW4W36W_xpu84fwWXQBY 8657
pioreactor/cli/lazy_group.py sha256=fl3Ia8aFe6cDFVTUZmEYXD3N2WIc2YabD1IosoRCbTg 1447
pioreactor/cli/pio.py sha256=wyJWCAd4wHFkxwu3LIFWPcm4l2reDKiF8R86Aw0MTtY 24863
pioreactor/cli/pios.py sha256=gRgT7SIkim54df2zQhDcKEtKKOpZjxPK-RA_L9in14A 29699
pioreactor/cli/plugins.py sha256=ETiDAZscou6bCtpD9zPG2_5IYSKohqFlyvJh5xjA-bE 365
pioreactor/cli/run.py sha256=SGFcmvfiexdBaPlJuzYB47WKK_oTpRz5UDGZ5_18ne0 2932
pioreactor/cli/workers.py sha256=2I_NmtyvIDlkEYPO0Q8tU5EIwDpYoZGJAtoxWbkZqtk 700
pioreactor/cluster_management/__init__.py sha256=FGjTKYCsgc0fSn-wSJ8wm0Ju1d68YTTbGfWVp3jcKhw 10297
pioreactor/experiment_profiles/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
pioreactor/experiment_profiles/parser.py sha256=UEuQR5vTWGsOJXS1vvsfXVqRMpLyAQG8-OLkyusTIgI 7484
pioreactor/experiment_profiles/profile_struct.py sha256=Y6H3l41xTQ8KYRYTFi9NriU3otPY-J9nkfdZyx9dHsM 2995
pioreactor/experiment_profiles/sly/__init__.py sha256=Z7rV-XpX5Nz29NqaaJ7ln8hHgY6WYqC5t-59YYt8xqs 197
pioreactor/experiment_profiles/sly/lex.py sha256=Dwt9dJqVw92BpmfwWR0PzqduLpD5qE-ILgSj_vXUlRg 16273
pioreactor/experiment_profiles/sly/yacc.py sha256=EfzAO8Wg4Cb8wOPBaf8pK37MDsk0KFjTEN8BHgDMXi0 83015
pioreactor/plugin_management/__init__.py sha256=APkxPFLqXWOI6k1CziJqUA05jn6xOyYHaQE1oiu0aic 4298
pioreactor/plugin_management/install_plugin.py sha256=5l7J0VucKc30NK-x2w6ocwgCj5Yow4O_VuiyqDIGhnM 1452
pioreactor/plugin_management/list_plugins.py sha256=8KJBIlMYvUqWmdm0hjiVbNv2wOYqj_yzBDR22iAevVM 1264
pioreactor/plugin_management/uninstall_plugin.py sha256=EMRT_jqWx9hE8hN8RctLFl2ipdJzK8MwuDBdsmUXubA 1787
pioreactor/plugin_management/utils.py sha256=Cferq4vLR0JuXjZY135tm_fcszm5_8bNP4eToOH2Slw 1194
pioreactor/utils/__init__.py sha256=nLhycp6E4jc7kSyEgokUlgEell93j6R7xcTxsk3Wps0 27608
pioreactor/utils/adcs.py sha256=Nlb9sXHLqMxJWVOITRWmmLdL8rfMIhxYT2dgtYyLDTE 4305
pioreactor/utils/dacs.py sha256=gPAEjRseVA3-Ta5MTHpwi0HRdbWVd47pD21FcCaQwFY 1930
pioreactor/utils/math_helpers.py sha256=Ut8X06jOhqCK8S3PgxsfByPCWeS8Uu7zFha-ef2q9ws 3807
pioreactor/utils/mock.py sha256=MrFyfwjH5prLPIApJy2mrBrcAT0wK3a3FSIjjuzBiBE 5381
pioreactor/utils/networking.py sha256=BAlYcBML5J98NTrL-mACOoPkoSw7gNTtv12CuV2KJQs 4931
pioreactor/utils/pwm.py sha256=v8BWT00vG3JCOC9HvB9D38B8WRx8HD0jigXCKGxnSao 10063
pioreactor/utils/rpi_bad_power.py sha256=CbtzIi9x8pvtVAX6aID8MG5YXNzkeIRFYfhri4qI-Xo 3393
pioreactor/utils/sqlite_worker.py sha256=Pp7VHFWGVg78YuDet-ClLKBqKlWEJAQ7xZ-7L9uwrR0 8174
pioreactor/utils/streaming_calculations.py sha256=hBQQ03TavVtmYm6O4LpVMOgNW-Z_IspkH5gAkDwdJHU 18471
pioreactor/utils/temps.py sha256=N-arYrgoY2RsCpoMJUNsaS88X0vcr4syLweOgybEWMw 867
pioreactor/utils/timing.py sha256=hfVoq_ydyvS0b4ppJcVXAnwsWvCzecWT2MZM1aBYaXo 6279
pioreactor-25.1.21.dist-info/LICENSE sha256=V9lTmv9cMeiSZ_9ezl7s5LVGXkZ4t7PUzVxIeVqkk7k 1067
pioreactor-25.1.21.dist-info/METADATA sha256=WVoA39u_VORwXHGwUIYChEV6j-lPygIkO8WwYWEKdj8 5583
pioreactor-25.1.21.dist-info/WHEEL sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8 91
pioreactor-25.1.21.dist-info/entry_points.txt sha256=1vQa-58PTH44hOQBeYFJdO3Tdfzea7_pYDxv5KQWvZ4 79
pioreactor-25.1.21.dist-info/top_level.txt sha256=xhd14Ee_KR74whX88OzvljqlGXmfpBUHOSIqDrbs9_0 11
pioreactor-25.1.21.dist-info/RECORD

top_level.txt

pioreactor

entry_points.txt

pio = pioreactor.cli.pio:pio
pios = pioreactor.cli.pios:pios