ositah 24.8.dev1__tar.gz → 24.9.dev1__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.

Potentially problematic release.


This version of ositah might be problematic. Click here for more details.

Files changed (79) hide show
  1. {ositah-24.8.dev1/ositah.egg-info → ositah-24.9.dev1}/PKG-INFO +6 -5
  2. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/analysis.py +1 -1
  3. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/validation/tables.py +1 -0
  4. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/validation/tools.py +3 -3
  5. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/agents.py +3 -2
  6. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/projects.py +2 -2
  7. {ositah-24.8.dev1 → ositah-24.9.dev1/ositah.egg-info}/PKG-INFO +6 -5
  8. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah.egg-info/requires.txt +5 -4
  9. {ositah-24.8.dev1 → ositah-24.9.dev1}/pyproject.toml +6 -5
  10. {ositah-24.8.dev1 → ositah-24.9.dev1}/.gitignore +0 -0
  11. {ositah-24.8.dev1 → ositah-24.9.dev1}/.gitlab-ci.yml +0 -0
  12. {ositah-24.8.dev1 → ositah-24.9.dev1}/LICENSE +0 -0
  13. {ositah-24.8.dev1 → ositah-24.9.dev1}/README.md +0 -0
  14. {ositah-24.8.dev1 → ositah-24.9.dev1}/docker/Dockerfile +0 -0
  15. {ositah-24.8.dev1 → ositah-24.9.dev1}/docker/docker-compose.yml +0 -0
  16. {ositah-24.8.dev1 → ositah-24.9.dev1}/docker/pyproject-poetry.toml +0 -0
  17. {ositah-24.8.dev1 → ositah-24.9.dev1}/gunicorn.config/README.md +0 -0
  18. {ositah-24.8.dev1 → ositah-24.9.dev1}/gunicorn.config/gunicorn.ositah +0 -0
  19. {ositah-24.8.dev1 → ositah-24.9.dev1}/gunicorn.config/gunicorn@.service +0 -0
  20. {ositah-24.8.dev1 → ositah-24.9.dev1}/gunicorn.config/ositah.conf.py +0 -0
  21. {ositah-24.8.dev1 → ositah-24.9.dev1}/noxfile.py +0 -0
  22. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/__init__.py +0 -0
  23. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/app.py +0 -0
  24. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/__init__.py +0 -0
  25. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/configuration/__init__.py +0 -0
  26. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/configuration/callbacks.py +0 -0
  27. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/configuration/main.py +0 -0
  28. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/configuration/parameters.py +0 -0
  29. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/configuration/tools.py +0 -0
  30. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/export.py +0 -0
  31. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/validation/__init__.py +0 -0
  32. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/validation/callbacks.py +0 -0
  33. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/validation/main.py +0 -0
  34. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/apps/validation/parameters.py +0 -0
  35. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/assets/arrow_down_up.svg +0 -0
  36. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/assets/ositah.css +0 -0
  37. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/assets/sort_ascending.svg +0 -0
  38. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/assets/sort_descending.svg +0 -0
  39. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/assets/sorttable.js +0 -0
  40. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/main.py +0 -0
  41. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/ositah.example.cfg +0 -0
  42. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/static/style.css +0 -0
  43. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/templates/base.html +0 -0
  44. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/templates/bootstrap_login.html +0 -0
  45. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/templates/login_form.html +0 -0
  46. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/__init__.py +0 -0
  47. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/authentication.py +0 -0
  48. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/cache.py +0 -0
  49. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/core.py +0 -0
  50. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/exceptions.py +0 -0
  51. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/hito_db.py +0 -0
  52. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/hito_db_model.py +0 -0
  53. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/menus.py +0 -0
  54. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/period.py +0 -0
  55. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/teams.py +0 -0
  56. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah/utils/utils.py +0 -0
  57. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah.egg-info/SOURCES.txt +0 -0
  58. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah.egg-info/dependency_links.txt +0 -0
  59. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah.egg-info/entry_points.txt +0 -0
  60. {ositah-24.8.dev1 → ositah-24.9.dev1}/ositah.egg-info/top_level.txt +0 -0
  61. {ositah-24.8.dev1 → ositah-24.9.dev1}/setup.cfg +0 -0
  62. {ositah-24.8.dev1 → ositah-24.9.dev1}/setup.py +0 -0
  63. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/README.md +0 -0
  64. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/accordion.py +0 -0
  65. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/authentication.py +0 -0
  66. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/checkbox.py +0 -0
  67. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/checklist.py +0 -0
  68. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/file-selector.py +0 -0
  69. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/file-upload.py +0 -0
  70. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/long_running_callback.py +0 -0
  71. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/pandas_split.py +0 -0
  72. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/pandas_split_bug_report.py +0 -0
  73. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/pattern-matching-callback.py +0 -0
  74. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/progess_bar.py +0 -0
  75. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/reset_table_checkboxes.py +0 -0
  76. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/sortable_table.py +0 -0
  77. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/sqlalchemy_test.py +0 -0
  78. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/templates/base.html +0 -0
  79. {ositah-24.8.dev1 → ositah-24.9.dev1}/test-dash/templates/login_form.html +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ositah
3
- Version: 24.8.dev1
3
+ Version: 24.9.dev1
4
4
  Summary: Outils de Suivi d'Activités basé sur Hito
5
5
  Author-email: Michel Jouvin <michel.jouvin@ijclab.in2p3.fr>
6
6
  License: BSD 3-Clause License
@@ -13,15 +13,16 @@ Requires-Python: >=3.8
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
15
  Requires-Dist: blinker
16
- Requires-Dist: dash
16
+ Requires-Dist: dash>=2.17
17
17
  Requires-Dist: dash-bootstrap-components
18
- Requires-Dist: flask~=2.2
18
+ Requires-Dist: flask
19
19
  Requires-Dist: flask-multipass
20
20
  Requires-Dist: flask-sqlalchemy~=3.0
21
21
  Requires-Dist: flask-wtf
22
- Requires-Dist: hito-tools>=23.2
23
- Requires-Dist: pandas==2.*
22
+ Requires-Dist: hito-tools>=24.8
23
+ Requires-Dist: pandas>=2.2
24
24
  Requires-Dist: pymysql
25
+ Requires-Dist: python>=3.9
25
26
  Requires-Dist: python-ldap
26
27
  Requires-Dist: pyyaml
27
28
  Requires-Dist: simplejson
@@ -596,7 +596,7 @@ def ijclab_export_to_csv(_, team, team_selection_date, source, period_date):
596
596
  columns["hours"],
597
597
  ]
598
598
  ]
599
- exported_data[columns["hours"]] = np.round(exported_data[columns["hours"]]).astype("int")
599
+ exported_data.loc[:, columns["hours"]] = np.round(exported_data[columns["hours"]]).astype("int")
600
600
  column_renames = {}
601
601
  for c in exported_data.columns.tolist():
602
602
  if c in EXPORT_COLUMN_NAMES:
@@ -176,6 +176,7 @@ def build_validation_table(team, team_selection_date, declaration_set: int, peri
176
176
  selected_declarations = declaration_list[~declaration_list["validated"]]
177
177
  else:
178
178
  return general_error_jumbotron(f"Invalid declaration set ID ({declaration_set})")
179
+ selected_declarations.sort_values(by=["fullname"], ignore_index=True, inplace=True)
179
180
 
180
181
  columns = [*data_columns]
181
182
  columns.insert(0, column_names["fullname"])
@@ -5,7 +5,6 @@ Various functions used by Validation sub-application
5
5
  from datetime import datetime
6
6
 
7
7
  import dash_bootstrap_components as dbc
8
- import numpy as np
9
8
  import pandas as pd
10
9
  from dash import html
11
10
 
@@ -341,9 +340,10 @@ def category_declarations(
341
340
  ]
342
341
  category_declarations.drop(columns=columns["hours"], inplace=True)
343
342
  category_declarations.fillna(0, inplace=True)
343
+ category_declarations = category_declarations.infer_objects(copy=False)
344
344
 
345
- agg_functions = {c: np.sum for c in categories}
346
- agg_functions["suspect"] = np.any
345
+ agg_functions = {c: "sum" for c in categories}
346
+ agg_functions["suspect"] = "any"
347
347
  category_declarations_pt = pd.pivot_table(
348
348
  category_declarations,
349
349
  index=[
@@ -64,8 +64,9 @@ def get_agents(period_date: str, team: str = None) -> pd.DataFrame:
64
64
  # agent_list = agent_list.loc[(agent_list.archive == 0) |
65
65
  # (agent_list.date_fin >= start_date.date().isoformat())]
66
66
  if team and team != TEAM_LIST_ALL_AGENTS:
67
- #agent_list = agent_list[agent_list["team"].str.match(team, case=False, na=False)]
68
- agent_list = agent_list[agent_list.team.notna() & agent_list[columns["team"]].str.match(team)]
67
+ agent_list = agent_list[
68
+ agent_list.team.notna() & agent_list[columns["team"]].str.match(team)
69
+ ]
69
70
  else:
70
71
  # If the agent doesn't belong to a team, set team to an empty string rather than None
71
72
  agent_list.loc[agent_list.team.isna(), "team"] = ""
@@ -367,7 +367,7 @@ def get_team_projects(
367
367
  columns["email"],
368
368
  ],
369
369
  values=[columns["hours"], columns["quotite"]],
370
- aggfunc={columns["hours"]: np.sum, columns["quotite"]: np.mean},
370
+ aggfunc={columns["hours"]: "sum", columns["quotite"]: "mean"},
371
371
  )
372
372
  declarations = pd.DataFrame(global_declarations_pt.to_records())
373
373
  declarations[[columns["masterproject"], columns["project"]]] = declarations[
@@ -519,7 +519,7 @@ def build_projects_data(team, team_selection_date, period_date: str, source):
519
519
  columns["category"],
520
520
  ],
521
521
  values=[columns["hours"]],
522
- aggfunc={columns["hours"]: np.sum},
522
+ aggfunc={columns["hours"]: "sum"},
523
523
  )
524
524
  projects_data = pd.DataFrame(projects_data_pt.to_records())
525
525
  projects_data[columns["hours"]] = np.round(projects_data[columns["hours"]]).astype("int")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ositah
3
- Version: 24.8.dev1
3
+ Version: 24.9.dev1
4
4
  Summary: Outils de Suivi d'Activités basé sur Hito
5
5
  Author-email: Michel Jouvin <michel.jouvin@ijclab.in2p3.fr>
6
6
  License: BSD 3-Clause License
@@ -13,15 +13,16 @@ Requires-Python: >=3.8
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
15
  Requires-Dist: blinker
16
- Requires-Dist: dash
16
+ Requires-Dist: dash>=2.17
17
17
  Requires-Dist: dash-bootstrap-components
18
- Requires-Dist: flask~=2.2
18
+ Requires-Dist: flask
19
19
  Requires-Dist: flask-multipass
20
20
  Requires-Dist: flask-sqlalchemy~=3.0
21
21
  Requires-Dist: flask-wtf
22
- Requires-Dist: hito-tools>=23.2
23
- Requires-Dist: pandas==2.*
22
+ Requires-Dist: hito-tools>=24.8
23
+ Requires-Dist: pandas>=2.2
24
24
  Requires-Dist: pymysql
25
+ Requires-Dist: python>=3.9
25
26
  Requires-Dist: python-ldap
26
27
  Requires-Dist: pyyaml
27
28
  Requires-Dist: simplejson
@@ -1,13 +1,14 @@
1
1
  blinker
2
- dash
2
+ dash>=2.17
3
3
  dash-bootstrap-components
4
- flask~=2.2
4
+ flask
5
5
  flask-multipass
6
6
  flask-sqlalchemy~=3.0
7
7
  flask-wtf
8
- hito-tools>=23.2
9
- pandas==2.*
8
+ hito-tools>=24.8
9
+ pandas>=2.2
10
10
  pymysql
11
+ python>=3.9
11
12
  python-ldap
12
13
  pyyaml
13
14
  simplejson
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ositah"
7
- version = "24.8.dev1"
7
+ version = "24.9.dev1"
8
8
  description = "Outils de Suivi d'Activités basé sur Hito"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -15,15 +15,16 @@ classifiers = [
15
15
  ]
16
16
  dependencies = [
17
17
  "blinker",
18
- "dash",
18
+ "dash>=2.17",
19
19
  "dash-bootstrap-components",
20
- "flask~=2.2",
20
+ "flask",
21
21
  "flask-multipass",
22
22
  "flask-sqlalchemy~=3.0",
23
23
  "flask-wtf",
24
- "hito-tools>=23.2",
25
- "pandas==2.*",
24
+ "hito-tools>=24.8",
25
+ "pandas>=2.2",
26
26
  "pymysql",
27
+ "python>=3.9",
27
28
  "python-ldap",
28
29
  "pyyaml",
29
30
  "simplejson",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes