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 +21 -8
- pyholos/farm/farm_settings.py +11 -3
- pyholos/resources/soil_landscapes_of_canada_v3r2.zip +0 -0
- pyholos/version.py +1 -1
- {pyholos-0.1.3.dist-info → pyholos-0.1.4.dist-info}/METADATA +1 -1
- {pyholos-0.1.3.dist-info → pyholos-0.1.4.dist-info}/RECORD +9 -8
- {pyholos-0.1.3.dist-info → pyholos-0.1.4.dist-info}/WHEEL +0 -0
- {pyholos-0.1.3.dist-info → pyholos-0.1.4.dist-info}/licenses/LICENSE +0 -0
- {pyholos-0.1.3.dist-info → pyholos-0.1.4.dist-info}/top_level.txt +0 -0
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.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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(
|
pyholos/farm/farm_settings.py
CHANGED
|
@@ -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
|
|
539
|
+
def _get_data(self) -> list[str]:
|
|
538
540
|
sections = self.get_params()
|
|
539
|
-
|
|
540
|
-
|
|
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()}
|
|
Binary file
|
pyholos/version.py
CHANGED
|
@@ -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=
|
|
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=
|
|
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=
|
|
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.
|
|
64
|
-
pyholos-0.1.
|
|
65
|
-
pyholos-0.1.
|
|
66
|
-
pyholos-0.1.
|
|
67
|
-
pyholos-0.1.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|