pyholos 0.1.3__py3-none-any.whl → 0.1.4__py3-none-any.whl

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 pyholos might be problematic. Click here for more details.

pyholos/farm/farm.py CHANGED
@@ -1,4 +1,5 @@
1
1
  from pathlib import Path
2
+ from typing import Generator
2
3
 
3
4
  from pandas import DataFrame
4
5
 
@@ -34,20 +35,32 @@ class Farm:
34
35
  def _set_dir_name(entry: str) -> str:
35
36
  return ' '.join([s.capitalize() for s in entry.split('_')])
36
37
 
38
+ def _iter_over_animal_components(self) -> Generator:
39
+ for k, v in self.__dict__.items():
40
+ if (v is not None) and (not isinstance(v, ParamsFarmSettings)):
41
+ yield k, v
42
+
37
43
  def write_files(
38
44
  self,
39
45
  path_dir_farm: Path
40
46
  ):
41
47
  path_dir_farm.mkdir(parents=True, exist_ok=True)
42
48
  self.farm_settings.write(path_dir_farm=path_dir_farm)
43
- for k, v in self.__dict__.items():
44
- if (v is not None) and (not isinstance(v, ParamsFarmSettings)):
45
- path_dir = path_dir_farm / self._set_dir_name(entry=k)
46
- path_dir.mkdir(parents=True, exist_ok=True)
47
- dfs = [DataFrame.from_records([v.to_dict() for v in component]) for component in v]
48
- for df in dfs:
49
- name_output_file = df['Name'].unique()[0]
50
- df.to_csv(path_dir / f'{name_output_file}.csv', index=False)
49
+ for k, v in self._iter_over_animal_components():
50
+ path_dir = path_dir_farm / self._set_dir_name(entry=k)
51
+ path_dir.mkdir(parents=True, exist_ok=True)
52
+ dfs = [DataFrame.from_records([v.to_dict() for v in component]) for component in v]
53
+ for df in dfs:
54
+ name_output_file = df['Name'].unique()[0]
55
+ df.to_csv(path_dir / f'{name_output_file}.csv', index=False)
56
+
57
+ def export_to_dict(self) -> dict:
58
+ res = {**self.farm_settings.export_to_dict()}
59
+ for k, v in self._iter_over_animal_components():
60
+ dir_name = self._set_dir_name(entry=k)
61
+ res[dir_name] = [[v.to_dict() for v in component] for component in v]
62
+
63
+ return res
51
64
 
52
65
 
53
66
  def create_farm(
@@ -531,12 +531,20 @@ class ParamsFarmSettings:
531
531
  year=year,
532
532
  **soil_properties)
533
533
 
534
+ self._file_name = "Farm.settings"
535
+
534
536
  def get_params(self) -> list[ParamGeneric]:
535
537
  return [getattr(self, v) for v in self.__dict__ if all([not v.startswith(('_', '__')), not callable(v)])]
536
538
 
537
- def write(self, path_dir_farm: Path):
539
+ def _get_data(self) -> list[str]:
538
540
  sections = self.get_params()
539
- res = [x for y in [v.to_list() + [''] for v in sections[:-1]] for x in y] + sections[-1].to_list()
540
- with (path_dir_farm / 'Farm.settings').open(mode='w', encoding='utf-8') as f:
541
+ return [x for y in [v.to_list() + [''] for v in sections[:-1]] for x in y] + sections[-1].to_list()
542
+
543
+ def write(self, path_dir_farm: Path):
544
+ res = self._get_data()
545
+ with (path_dir_farm / self._file_name).open(mode='w', encoding='utf-8') as f:
541
546
  f.writelines('\n'.join(res))
542
547
  pass
548
+
549
+ def export_to_dict(self) -> dict[str, list[str]]:
550
+ return {self._file_name: self._get_data()}
pyholos/version.py CHANGED
@@ -1,5 +1,5 @@
1
1
  major = 0
2
2
  minor = 1
3
- post = 3
3
+ post = 4
4
4
 
5
5
  __version__ = ".".join([str(s) for s in (major, minor, post)])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyholos
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: A Python package for running the HOLOS 4.0 CLI.
5
5
  Author-email: Rami ALBASHA <ralbasha@msfourrager.com>
6
6
  Project-URL: Homepage, https://github.com/Mon-Systeme-Fourrager/pyholos
@@ -7,7 +7,7 @@ pyholos/defaults.py,sha256=n0qKQcKv7ey7ze4lONTSwYGfd7y3RogGEmXkyV8WHig,4842
7
7
  pyholos/launching.py,sha256=e1Jcu7w2BDMnG5xxXQhxkqL-aqrQ5qQ6e7mw9mHmM4E,2530
8
8
  pyholos/soil.py,sha256=LbQ1yDdmg8QRLxPWe0ORX69aMEdiNL5tLY_4Ll4q-xs,20167
9
9
  pyholos/utils.py,sha256=IPb7Sx0jw-w7r46t0MXgVqHZIiJwBbVei8gPqcoHO7s,2571
10
- pyholos/version.py,sha256=qfDiOsy6LZxfXnbbq8EKve6eOBNAWk8wl5Kre0ViA9E,96
10
+ pyholos/version.py,sha256=JxXZFxP_j6wliY_CBOesvw3xRoGBfq0G1IgITXDXeIk,96
11
11
  pyholos/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  pyholos/components/common.py,sha256=ZEt4GOjJGRN66chjtSPHo2R-u9wnrkpUkV17W0m7BF8,6788
13
13
  pyholos/components/animals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -27,12 +27,13 @@ pyholos/components/land_management/carbon/relative_biomass_information.py,sha256
27
27
  pyholos/components/land_management/carbon/tillage.py,sha256=bjpkz90DLIPaZXHgRN3hMQ5KJj08_-qpviF1aWQ31J0,3110
28
28
  pyholos/farm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  pyholos/farm/enums.py,sha256=DEMGOTB-VmILVCcpoNfWV1FViiJ0TeJkG36_HRiLKEY,1978
30
- pyholos/farm/farm.py,sha256=XiiDtxoIEwu_uGu2f7A_qUMjYO04g6ZPt_MUf275u_4,4056
30
+ pyholos/farm/farm.py,sha256=mdEWBmurla93_VfNoDJf310wX3H-6pPG4OoK_AF5qHw,4519
31
31
  pyholos/farm/farm_inputs.py,sha256=g3WKw4lqIcmEOVYpUU73uQlAp9VhGJPsTa462lzWlMk,26749
32
- pyholos/farm/farm_settings.py,sha256=KJhz39K0zUGt269zBh_E_YXA6JXkzvoGAvQMzCE9Amc,28952
32
+ pyholos/farm/farm_settings.py,sha256=p6Ew_RAF_fpHyQbKTCmh-5pWRRwsRtkjFwwHlWSlVR8,29180
33
33
  pyholos/postprocessing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
34
  pyholos/postprocessing/plots.py,sha256=LvucTQQQCO6mjZavSRlECOA7KNtOIhNmsOLkLKoRYCE,5522
35
35
  pyholos/postprocessing/postprocessing.py,sha256=Q7r8ceUEJymBztSdFB46YxoZ0Gyik1VwVWZGVvQ8XuE,1400
36
+ pyholos/resources/soil_landscapes_of_canada_v3r2.zip,sha256=I_o0MLq0_1URoQadjpkpn1c9P0tkDJgaE5sheuSS-zM,48732693
36
37
  pyholos/resources/holos/Table_16_Livestock_Coefficients_BeefAndDairy_Cattle_Provider.csv,sha256=ettBji-ROISVa6fj_HB59bk2tX9PyZZRiU0hJkE8SVo,1039
37
38
  pyholos/resources/holos/Table_21_Average_Milk_Production_For_Dairy_Cows_By_Province.csv,sha256=wkk4BEKJpCs42Y4yFuDR8-SohZQ8tSYzo-8_phf16jQ,1300
38
39
  pyholos/resources/holos/Table_22_Livestock_Coefficients_For_Sheep.csv,sha256=fjEgAuEAR9FXBEx5NIUND0YeX3_CWe9LOjZbAk6_Bwk,1305
@@ -60,8 +61,8 @@ pyholos/resources/soil_landscapes_of_canada_v3r2/soil_landscapes_of_canada_v3r2_
60
61
  pyholos/resources/soil_landscapes_of_canada_v3r2/soil_landscapes_of_canada_v3r2_csv/ca_all_slc_v3r2_lst.csv,sha256=I_gEngvoUi_1YRi9rhwnU2HvT4TVNUpsj-nJHQGWNtw,2764500
61
62
  pyholos/resources/soil_landscapes_of_canada_v3r2/soil_landscapes_of_canada_v3r2_csv/ca_all_slc_v3r2_slt.csv,sha256=0HxKAWBcWH9PIB0TL8cTY4JC2f5xTd8UIlIw9fDfjaY,8957879
62
63
  pyholos/resources/soil_landscapes_of_canada_v3r2/soil_landscapes_of_canada_v3r2_csv/ca_all_slc_v3r2_snt.csv,sha256=jBrpCpZ1ziMAxBYWXXWaTFkuF1WcBF5bzD5effZsPKg,1360046
63
- pyholos-0.1.3.dist-info/licenses/LICENSE,sha256=C8amDSvgy941IWtTFploX0NSyjBHHB0biiEKEX85XM0,35976
64
- pyholos-0.1.3.dist-info/METADATA,sha256=RuehcHvwWPT8DJ87ZxEOwKK1lTD0qXC_0qlfkPp-6Q8,751
65
- pyholos-0.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
66
- pyholos-0.1.3.dist-info/top_level.txt,sha256=-OdNFZ9lbJWvWGkFjszJHZdIr8ggnJnnIaNMaCfdwuI,8
67
- pyholos-0.1.3.dist-info/RECORD,,
64
+ pyholos-0.1.4.dist-info/licenses/LICENSE,sha256=C8amDSvgy941IWtTFploX0NSyjBHHB0biiEKEX85XM0,35976
65
+ pyholos-0.1.4.dist-info/METADATA,sha256=nUohc9UiVUMkUnmzv3-5UOIsG1ylakDYH2YMxcO-Mlk,751
66
+ pyholos-0.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
67
+ pyholos-0.1.4.dist-info/top_level.txt,sha256=-OdNFZ9lbJWvWGkFjszJHZdIr8ggnJnnIaNMaCfdwuI,8
68
+ pyholos-0.1.4.dist-info/RECORD,,