ethoscopy 2.2.1__tar.gz → 2.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. ethoscopy-2.3.0/.gitignore +24 -0
  2. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/Dockerfile +1 -1
  3. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/docker-compose.yml +1 -1
  4. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/PKG-INFO +2 -1
  5. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/pyproject.toml +5 -1
  6. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/__init__.py +6 -0
  7. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/load.py +615 -39
  8. ethoscopy-2.3.0/tasks/todo.md +269 -0
  9. ethoscopy-2.3.0/tests/test_load_diagnostics.py +200 -0
  10. ethoscopy-2.3.0/tests/test_load_light.py +420 -0
  11. ethoscopy-2.2.1/.gitignore +0 -11
  12. ethoscopy-2.2.1/Docker/.env.keycloak +0 -39
  13. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/.codecov.yml +0 -0
  14. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/.github/workflows/ci.yml +0 -0
  15. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/.github/workflows/release.yml +0 -0
  16. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/.pre-commit-config.yaml +0 -0
  17. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/CLAUDE.md +0 -0
  18. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/.env.dummy.example +0 -0
  19. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/.env.github.example +0 -0
  20. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/.env.gitlab.example +0 -0
  21. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/.env.google.example +0 -0
  22. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/.env.keycloak.example +0 -0
  23. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/README.md +0 -0
  24. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/README_AUTH.md +0 -0
  25. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/config/jupyterhub_config.py +0 -0
  26. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/config/users.py +0 -0
  27. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/install_r_packages.r +0 -0
  28. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/Docker/jupyterhub_data/jupyterhub_config.py +0 -0
  29. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/LICENSE +0 -0
  30. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/README.md +0 -0
  31. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/TESTING.md +0 -0
  32. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/_config.yml +0 -0
  33. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/pytest.ini +0 -0
  34. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/run_tests.py +0 -0
  35. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/scripts/README.md +0 -0
  36. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/scripts/convert_databases.sh +0 -0
  37. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/scripts/convert_wal_to_delete.py +0 -0
  38. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/scripts/publish_tutorials.py +0 -0
  39. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/setup.py +0 -0
  40. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/analyse.py +0 -0
  41. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/behavpy.py +0 -0
  42. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/behavpy_HMM_class.py +0 -0
  43. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/behavpy_class.py +0 -0
  44. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/behavpy_core.py +0 -0
  45. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/behavpy_draw.py +0 -0
  46. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/behavpy_periodogram_class.py +0 -0
  47. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/behavpy_plotly.py +0 -0
  48. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/behavpy_seaborn.py +0 -0
  49. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/metadata_db.py +0 -0
  50. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/misc/__init__.py +0 -0
  51. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/misc/circadian_bars.py +0 -0
  52. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/misc/general_functions.py +0 -0
  53. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/misc/get_HMM.py +0 -0
  54. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/misc/get_tutorials.py +0 -0
  55. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/misc/hmm_functions.py +0 -0
  56. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/misc/periodogram_functions.py +0 -0
  57. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/src/ethoscopy/misc/validate_datetime.py +0 -0
  58. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/__init__.py +0 -0
  59. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/conftest.py +0 -0
  60. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/data/README.md +0 -0
  61. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/data/test_ethoscope.db +0 -0
  62. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_analyse.py +0 -0
  63. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_baseline_enhancements.py +0 -0
  64. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_behavpy.py +0 -0
  65. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_behavpy_core_simple.py +0 -0
  66. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_compatibility_classes.py +0 -0
  67. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_general_functions.py +0 -0
  68. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_get_tutorials.py +0 -0
  69. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_load.py +0 -0
  70. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_load_comprehensive.py +0 -0
  71. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_load_metadata_fixes.py +0 -0
  72. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_load_optimizations.py +0 -0
  73. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tests/test_load_wal.py +0 -0
  74. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tutorial_notebook/1_Overview_tutorial.ipynb +0 -0
  75. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tutorial_notebook/2_HMM_tutorial.ipynb +0 -0
  76. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tutorial_notebook/3_Circadian_tutorial.ipynb +0 -0
  77. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tutorial_notebook/4_Navigating_db_tutorial.ipynb +0 -0
  78. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tutorial_notebook/5_Ethoscopy_catch22_tutorial.ipynb +0 -0
  79. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tutorial_notebook/6_Ethoscopy_to_hctsa_tutorial.ipynb +0 -0
  80. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tutorial_notebook/ethoscope_db.csv +0 -0
  81. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tutorial_notebook/jones_et_al_metadata.csv +0 -0
  82. {ethoscopy-2.2.1 → ethoscopy-2.3.0}/tutorial_notebook/notebook_paper.ipynb +0 -0
@@ -0,0 +1,24 @@
1
+ *.txt
2
+ *.pyc
3
+ *venv
4
+ dist/
5
+ *vscode
6
+ __pycache__/
7
+ ethoscopy.egg-info/
8
+ .gitignore
9
+ *.pkl
10
+ .python-version
11
+ tmp
12
+
13
+ # JupyterHub runtime state, generated when the Docker stack first runs.
14
+ # jupyterhub_cookie_secret signs session cookies and jupyterhub.sqlite holds
15
+ # user records and API tokens; neither belongs in the repo. Committing the
16
+ # secret would be the same failure as the tracked .env.keycloak removed in
17
+ # 6cbcbbe. jupyterhub_config.py stays tracked - it is configuration, not state.
18
+ Docker/jupyterhub_data/jupyterhub_cookie_secret
19
+ Docker/jupyterhub_data/jupyterhub.sqlite
20
+
21
+ # Coverage output
22
+ .coverage
23
+ htmlcov/
24
+ coverage.xml
@@ -106,7 +106,7 @@ RUN pip3 install \
106
106
  pyarrow \
107
107
  tqdm \
108
108
  jupyterlab-git \
109
- ethoscopy==2.2.0
109
+ ethoscopy==2.2.1
110
110
  # pycatch22
111
111
 
112
112
  # Pre-populate tutorial datasets inside the installed package so non-root
@@ -6,7 +6,7 @@ services:
6
6
  dockerfile: Dockerfile
7
7
  args:
8
8
  JUPYTER_HUB_TAG: ${JUPYTER_HUB_TAG:-5.4.0}
9
- image: ggilestro/ethoscope-lab:${ETHOSCOPE_LAB_TAG:-1.3}
9
+ image: ggilestro/ethoscope-lab:${ETHOSCOPE_LAB_TAG:-1.4}
10
10
  container_name: ethoscope-lab
11
11
  ports:
12
12
  - 8082:8000
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: ethoscopy
3
- Version: 2.2.1
3
+ Version: 2.3.0
4
4
  Summary: "A python based toolkit to download and anlyse data from the Ethoscope hardware system."
5
5
  Author-email: Lblackhurst29 <lblackhurst29@gmail.com>
6
6
  License-File: LICENSE
@@ -19,6 +19,7 @@ Requires-Dist: hmmlearn<0.4.0,>=0.3.2
19
19
  Requires-Dist: nbformat<6.0.0,>=5.10.4
20
20
  Requires-Dist: numpy<3.0.0,>=2.0.0
21
21
  Requires-Dist: pandas<3.0.0,>=2.2.2
22
+ Requires-Dist: pillow<13.0,>=10.0
22
23
  Requires-Dist: plotly<6.0.0,>=5.22.0
23
24
  Requires-Dist: pywavelets<2.0.0,>=1.6.0
24
25
  Requires-Dist: seaborn<0.14.0,>=0.13.2
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ethoscopy"
3
- version = "2.2.1"
3
+ version = "2.3.0"
4
4
  description = "\"A python based toolkit to download and anlyse data from the Ethoscope hardware system.\""
5
5
  authors = [{name = "Lblackhurst29",email = "lblackhurst29@gmail.com"}]
6
6
  readme = "README.md"
@@ -16,6 +16,10 @@ dependencies = [
16
16
  "astropy>=7.0,<8.0",
17
17
  "nbformat>=5.10.4,<6.0.0",
18
18
  "tqdm>=4.66,<5.0",
19
+ # estimate_light_cycle() decodes the stored IMG_SNAPSHOTS JPEGs. Pillow
20
+ # already arrived transitively through seaborn -> matplotlib; this makes the
21
+ # direct dependency explicit.
22
+ "pillow>=10.0,<13.0",
19
23
  ]
20
24
  requires-python = ">=3.12,<4.0"
21
25
  classifiers = [
@@ -15,8 +15,11 @@ from ethoscopy.analyse import (
15
15
  from ethoscopy.behavpy import behavpy
16
16
  from ethoscopy.load import (
17
17
  download_from_remote_dir,
18
+ estimate_light_cycle,
18
19
  link_meta_index,
19
20
  load_ethoscope,
21
+ load_ethoscope_diagnostics,
22
+ load_ethoscope_light_schedule,
20
23
  load_ethoscope_metadata,
21
24
  )
22
25
  from ethoscopy.misc.general_functions import concat
@@ -28,9 +31,12 @@ __all__ = [
28
31
  "behavpy",
29
32
  "download_from_remote_dir",
30
33
  "download_tutorial_data",
34
+ "estimate_light_cycle",
31
35
  "get_tutorial",
32
36
  "link_meta_index",
33
37
  "load_ethoscope",
38
+ "load_ethoscope_diagnostics",
39
+ "load_ethoscope_light_schedule",
34
40
  "load_ethoscope_metadata",
35
41
  "max_velocity_detector",
36
42
  "sleep_annotation",