toolsos 0.2.6__tar.gz → 0.2.8__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 (31) hide show
  1. {toolsos-0.2.6 → toolsos-0.2.8}/PKG-INFO +1 -1
  2. {toolsos-0.2.6 → toolsos-0.2.8}/pyproject.toml +1 -1
  3. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/geo.py +19 -5
  4. toolsos-0.2.8/src/toolsos/huisstijl/tables/__init__.py +0 -0
  5. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/tables/tables.py +22 -4
  6. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos.egg-info/PKG-INFO +1 -1
  7. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos.egg-info/SOURCES.txt +1 -0
  8. {toolsos-0.2.6 → toolsos-0.2.8}/README.md +0 -0
  9. {toolsos-0.2.6 → toolsos-0.2.8}/setup.cfg +0 -0
  10. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/__init__.py +0 -0
  11. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/cbs_tools.py +0 -0
  12. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/create_tables.py +0 -0
  13. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/database/database_connection.py +0 -0
  14. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/database/database_transfer.py +0 -0
  15. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/download.py +0 -0
  16. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/helpers.py +0 -0
  17. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/__init__.py +0 -0
  18. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/colors.py +0 -0
  19. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/graphs/__init__.py +0 -0
  20. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/graphs/bargraph.py +0 -0
  21. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/graphs/graph_styles.py +0 -0
  22. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/graphs/linegraph.py +0 -0
  23. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/graphs/piegraph.py +0 -0
  24. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/graphs/styler.py +0 -0
  25. {toolsos-0.2.6/src/toolsos/huisstijl/tables → toolsos-0.2.8/src/toolsos/huisstijl/maps}/__init__.py +0 -0
  26. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/tables/table_helpers.py +0 -0
  27. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/huisstijl/tables/table_styles.py +0 -0
  28. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos/polars_helpers.py +0 -0
  29. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos.egg-info/dependency_links.txt +0 -0
  30. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos.egg-info/requires.txt +0 -0
  31. {toolsos-0.2.6 → toolsos-0.2.8}/src/toolsos.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: toolsos
3
- Version: 0.2.6
3
+ Version: 0.2.8
4
4
  Summary: OS tools
5
5
  Author-email: OS <d.schmitz@amsterdam.nl>
6
6
  Keywords: tools,Onderzoek & Statistiek
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "toolsos"
9
- version = "0.2.6"
9
+ version = "0.2.8"
10
10
  description = "OS tools"
11
11
  readme = "README.md"
12
12
  authors = [{ name = "OS", email = "d.schmitz@amsterdam.nl" }]
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Any, Union
4
4
 
5
+ import geopandas as gpd
5
6
  import requests
6
7
 
7
8
 
@@ -17,15 +18,20 @@ def get_geo_json(
17
18
  Returns:
18
19
  dict[str, str]: geo json containg of the desired level and year
19
20
  """
20
- base_url = "https://gitlab.com/os-amsterdam/datavisualisatie-onderzoek-en-statistiek/-/raw/main/public/geo/"
21
+ base_url = "https://gitlab.com/os-amsterdam/datavisualisatie-onderzoek-en-statistiek/-/raw/main/public/geo"
22
+
23
+ if level not in ["buurten", "wijken", "gebieden", "stadsdelen"]:
24
+ raise ValueError(
25
+ "level should be 'buurten', 'wijken', 'gebieden' or 'stadsdelen'"
26
+ )
21
27
 
22
28
  if mra:
23
29
  level = f"{level}-mra"
24
- base_url = f"{base_url}mra/"
30
+ base_url = f"{base_url}/mra"
25
31
  else:
26
- base_url = f"{base_url}amsterdam/"
32
+ base_url = f"{base_url}/amsterdam"
27
33
 
28
- if (year <= 2020) & ~mra:
34
+ if (year <= 2020) and not mra:
29
35
  year = "2015-2020"
30
36
 
31
37
  if with_water:
@@ -33,11 +39,19 @@ def get_geo_json(
33
39
  else:
34
40
  url = f"{base_url}/{year}/{level}-{year}-zw-geo.json"
35
41
 
36
- print(url)
37
42
  json = requests.get(url).json()
43
+
38
44
  return json
39
45
 
40
46
 
47
+ def get_geo_dataframe(
48
+ level: str, year: Union[int, Any], with_water: bool = False, mra: bool = False
49
+ ):
50
+ return gpd.read_file(
51
+ get_geo_json(level=level, year=year, with_water=with_water, mra=mra)
52
+ )
53
+
54
+
41
55
  def extract_name_code_table(geo_json: dict[str, str]) -> dict[str, str]:
42
56
  """_summary_
43
57
 
File without changes
@@ -1,6 +1,7 @@
1
1
  import functools
2
2
  import json
3
3
  import re
4
+ import warnings
4
5
  from itertools import groupby
5
6
  from typing import Any, Callable, Dict
6
7
 
@@ -277,7 +278,14 @@ def get_cols_id_with_pattern(df: pd.DataFrame, pattern: str) -> list[int]:
277
278
  Returns:
278
279
  list[int]: list with column indices matching pattern
279
280
  """
280
- return [idx for idx, col in enumerate(df.columns) if re.findall(pattern, col)]
281
+
282
+ if isinstance(df.columns, pd.MultiIndex):
283
+ # Use the lowest level in the multi-index column
284
+ return [
285
+ idx for idx, col in enumerate(df.columns) if re.findall(pattern, col[-1])
286
+ ]
287
+ else:
288
+ return [idx for idx, col in enumerate(df.columns) if re.findall(pattern, col)]
281
289
 
282
290
 
283
291
  def get_string_cols_ids(df: pd.DataFrame) -> list[int]:
@@ -502,7 +510,8 @@ def write_table(
502
510
  blue_border: bool | None = True,
503
511
  blue_border_row_ids: int | list[int] | None = None,
504
512
  number_format: str = "0.0",
505
- autofit_columns: str | None = "column_names",
513
+ autofit_columns: str | None = None,
514
+ column_widths: list[int] | None = None,
506
515
  min_column_width: int | None = None,
507
516
  col_filter: bool | None = False,
508
517
  style: str = "old",
@@ -542,6 +551,7 @@ def write_table(
542
551
  blue_border_row_ids=blue_border_row_ids,
543
552
  number_format=number_format,
544
553
  autofit_columns=autofit_columns,
554
+ column_widths=column_widths,
545
555
  min_column_width=min_column_width,
546
556
  col_filter=col_filter,
547
557
  combine_multiindex=combine_multiindex,
@@ -590,7 +600,8 @@ def format_worksheet(
590
600
  blue_border: bool | None = True,
591
601
  blue_border_row_ids: int | list[int] | None = None,
592
602
  number_format: str = "0.0",
593
- autofit_columns: str | None = "column_names",
603
+ autofit_columns: str | None = None,
604
+ column_widths: list[int] | None = None,
594
605
  min_column_width: int | None = None,
595
606
  col_filter: bool | None = False,
596
607
  combine_multiindex: bool | int = False,
@@ -692,7 +703,14 @@ def format_worksheet(
692
703
  if combine_multiindex:
693
704
  cells_to_merge = get_cells_to_merge(df)
694
705
 
695
- if autofit_columns == "column_names":
706
+ if column_widths:
707
+ if len(arr[0]) != len(column_widths):
708
+ raise Warning(
709
+ "The number of widths defined in column_widths should be equal to the number of columsn in the dataframe"
710
+ )
711
+ col_widths = column_widths
712
+
713
+ elif (autofit_columns == "column_names") or (autofit_columns is None):
696
714
  col_widths = get_max_col_widths(df)
697
715
  elif autofit_columns == "all_data":
698
716
  col_widths = get_max_col_widths(arr)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: toolsos
3
- Version: 0.2.6
3
+ Version: 0.2.8
4
4
  Summary: OS tools
5
5
  Author-email: OS <d.schmitz@amsterdam.nl>
6
6
  Keywords: tools,Onderzoek & Statistiek
@@ -22,6 +22,7 @@ src/toolsos/huisstijl/graphs/graph_styles.py
22
22
  src/toolsos/huisstijl/graphs/linegraph.py
23
23
  src/toolsos/huisstijl/graphs/piegraph.py
24
24
  src/toolsos/huisstijl/graphs/styler.py
25
+ src/toolsos/huisstijl/maps/__init__.py
25
26
  src/toolsos/huisstijl/tables/__init__.py
26
27
  src/toolsos/huisstijl/tables/table_helpers.py
27
28
  src/toolsos/huisstijl/tables/table_styles.py
File without changes
File without changes
File without changes
File without changes
File without changes