PySimultan 0.5.9__py3-none-any.whl → 0.5.9.1__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.
- PySimultan2/__about__.py +1 -1
- PySimultan2/__init__.py +1 -0
- PySimultan2/data_model.py +7 -21
- PySimultan2/files.py +67 -2
- {pysimultan-0.5.9.dist-info → pysimultan-0.5.9.1.dist-info}/METADATA +1 -1
- {pysimultan-0.5.9.dist-info → pysimultan-0.5.9.1.dist-info}/RECORD +8 -8
- {pysimultan-0.5.9.dist-info → pysimultan-0.5.9.1.dist-info}/WHEEL +0 -0
- {pysimultan-0.5.9.dist-info → pysimultan-0.5.9.1.dist-info}/licenses/LICENSE.txt +0 -0
PySimultan2/__about__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
version = '0.5.9'
|
1
|
+
version = '0.5.9.1'
|
PySimultan2/__init__.py
CHANGED
PySimultan2/data_model.py
CHANGED
@@ -538,7 +538,7 @@ class DataModel:
|
|
538
538
|
|
539
539
|
"""
|
540
540
|
Add a file as resource to the project which already exists in the project folder
|
541
|
-
:param filename:
|
541
|
+
:param filename: path to the file or FileInfo object
|
542
542
|
:param target_dir:
|
543
543
|
:return:
|
544
544
|
"""
|
@@ -550,20 +550,12 @@ class DataModel:
|
|
550
550
|
|
551
551
|
if target_dir is None:
|
552
552
|
# check if file is already in project folder
|
553
|
-
if not os.path.exists(os.path.join(str(self.project.ProjectUnpackFolder), filename.Name)):
|
554
|
-
raise FileNotFoundError(f'File {filename} not found in project folder {self.project.ProjectUnpackFolder}')
|
555
|
-
|
556
|
-
self.project.AddResourceFile(FileInfo(str(filename)),
|
557
|
-
self.project_data_manager)
|
558
553
|
|
559
|
-
|
554
|
+
if not filename.FullName.startswith(str(self.project.ProjectUnpackFolder)) and not os.path.exists(os.path.join(str(self.project.ProjectUnpackFolder), filename.Name)):
|
555
|
+
raise FileNotFoundError(f'File {filename} not found in project folder {self.project.ProjectUnpackFolder}')
|
560
556
|
|
561
|
-
|
562
|
-
|
563
|
-
x for x in self.project_data_manager.AssetManager.Resources if x.CurrentFullPath == full_filename
|
564
|
-
)
|
565
|
-
, None
|
566
|
-
)
|
557
|
+
key = self.project_data_manager.AssetManager.AddResourceEntry(filename)
|
558
|
+
return self.project_data_manager.AssetManager.GetResource(key)
|
567
559
|
|
568
560
|
else:
|
569
561
|
if isinstance(target_dir, str):
|
@@ -577,14 +569,8 @@ class DataModel:
|
|
577
569
|
if not os.path.exists(os.path.join(target_dir.FullPath, filename.Name)):
|
578
570
|
raise FileNotFoundError(f'File {filename} not found in project folder {target_dir.FullPath}')
|
579
571
|
|
580
|
-
self.
|
581
|
-
|
582
|
-
self.project_data_manager)
|
583
|
-
|
584
|
-
# get added resource
|
585
|
-
return next((x for x in self.project_data_manager.AssetManager.Resources if
|
586
|
-
x.CurrentFullPath == os.path.join(target_dir.FullPath, filename.Name)), None)
|
587
|
-
|
572
|
+
key = self.project_data_manager.AssetManager.AddResourceEntry(os.path.join(target_dir.FullPath, filename.Name))
|
573
|
+
return self.project_data_manager.AssetManager.GetResource(key)
|
588
574
|
|
589
575
|
def add_resource(self,
|
590
576
|
filename: Union[str, FileInfo],
|
PySimultan2/files.py
CHANGED
@@ -12,13 +12,14 @@ import tempfile
|
|
12
12
|
from typing import List, Union, Optional
|
13
13
|
import shutil
|
14
14
|
import zipfile
|
15
|
+
from pathlib import Path
|
15
16
|
# from System.IO import FileInfo # public FileInfo (string fileName);
|
16
17
|
|
17
18
|
from SIMULTAN.Data.Assets import ResourceEntry, ResourceFileEntry, ContainedResourceFileEntry, Asset, ResourceDirectoryEntry
|
18
19
|
from SIMULTAN.Data.Taxonomy import SimTaxonomyEntry, SimTaxonomyEntryReference, SimTaxonomy
|
19
20
|
from SIMULTAN.Data.Components import SimComponent, ComponentMapping
|
20
21
|
|
21
|
-
from System.IO import DirectoryInfo
|
22
|
+
from System.IO import DirectoryInfo as SystemDirectoryInfo
|
22
23
|
|
23
24
|
# from .config import default_data_model
|
24
25
|
|
@@ -291,7 +292,6 @@ class FileInfo(object, metaclass=MetaMock):
|
|
291
292
|
resource = data_model.add_resource_file(file_path)
|
292
293
|
|
293
294
|
return cls(resource_entry=resource,
|
294
|
-
data_model=data_model,
|
295
295
|
*args,
|
296
296
|
**kwargs)
|
297
297
|
|
@@ -526,6 +526,46 @@ class DirectoryInfo(object, metaclass=DirectoryInfoMetaMock):
|
|
526
526
|
def get_by_key(cls, key: int) -> Optional[DirectoryInfo]:
|
527
527
|
return cls._cls_instances.get(key, None)
|
528
528
|
|
529
|
+
@classmethod
|
530
|
+
def from_existing_directory(cls,
|
531
|
+
directory_path: str,
|
532
|
+
add_files: bool = True,
|
533
|
+
add_sub_directories: bool = True,
|
534
|
+
*args,
|
535
|
+
**kwargs) -> DirectoryInfo:
|
536
|
+
|
537
|
+
data_model = kwargs.get('data_model', config.get_default_data_model())
|
538
|
+
|
539
|
+
if not directory_path.startswith(str(data_model.project.ProjectUnpackFolder)):
|
540
|
+
directory_path = os.path.join(str(data_model.project.ProjectUnpackFolder), directory_path)
|
541
|
+
|
542
|
+
res = data_model.project_data_manager.AssetManager.CreateResourceDirIn(os.path.basename(directory_path),
|
543
|
+
SystemDirectoryInfo(os.path.dirname(directory_path)),
|
544
|
+
'')
|
545
|
+
|
546
|
+
resource = data_model.project_data_manager.AssetManager.GetResource(res.Item1)
|
547
|
+
|
548
|
+
directory_info = cls(resource_entry=resource,
|
549
|
+
*args,
|
550
|
+
**kwargs)
|
551
|
+
|
552
|
+
|
553
|
+
if add_files:
|
554
|
+
directory_info.add_all_contained_files()
|
555
|
+
|
556
|
+
# for file in os.listdir(directory_path):
|
557
|
+
# file_path = os.path.join(directory_path, file)
|
558
|
+
# data_model.add_resource_file(file_path, target_dir=resource)
|
559
|
+
|
560
|
+
if add_sub_directories:
|
561
|
+
directory_info.add_all_contained_directories()
|
562
|
+
|
563
|
+
# for sub_dir in os.listdir(directory_path):
|
564
|
+
# sub_dir_path = os.path.join(directory_path, sub_dir)
|
565
|
+
# data_model.add_resource_directory(sub_dir_path, parent_directory=resource)
|
566
|
+
|
567
|
+
return directory_info
|
568
|
+
|
529
569
|
def __init__(self,
|
530
570
|
path: Optional[str] = None,
|
531
571
|
helper_file: Optional[FileInfo] = None,
|
@@ -644,6 +684,31 @@ class DirectoryInfo(object, metaclass=DirectoryInfoMetaMock):
|
|
644
684
|
return FileInfo(resource_entry=new_resource,
|
645
685
|
data_model=self.data_model)
|
646
686
|
|
687
|
+
def add_all_contained_files(self):
|
688
|
+
for file in os.listdir(self.full_path):
|
689
|
+
full_filename = os.path.join(self.full_path, file)
|
690
|
+
if Path(full_filename).is_file():
|
691
|
+
|
692
|
+
if full_filename in (x.current_full_path for x in self.resource_entry.Children):
|
693
|
+
continue
|
694
|
+
else:
|
695
|
+
logger.info(f'Adding file: {full_filename} to resources')
|
696
|
+
FileInfo.from_existing_file(full_filename, data_model=self.data_model)
|
697
|
+
|
698
|
+
def add_all_contained_directories(self):
|
699
|
+
for file in os.listdir(self.full_path):
|
700
|
+
full_filename = os.path.join(self.full_path, file)
|
701
|
+
if Path(full_filename).is_dir():
|
702
|
+
if full_filename in (x.current_full_path for x in self.resource_entry.Children):
|
703
|
+
continue
|
704
|
+
else:
|
705
|
+
logger.info(f'Adding directory: {full_filename} to resources')
|
706
|
+
DirectoryInfo.from_existing_directory(full_filename, data_model=self.data_model)
|
707
|
+
|
708
|
+
for directory in self.sub_directories:
|
709
|
+
directory.add_all_contained_files()
|
710
|
+
directory.add_all_contained_directories()
|
711
|
+
|
647
712
|
def add_tag(self, tag: SimTaxonomyEntry) -> None:
|
648
713
|
add_tag_to_resource(self.resource_entry, tag)
|
649
714
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: PySimultan
|
3
|
-
Version: 0.5.9
|
3
|
+
Version: 0.5.9.1
|
4
4
|
Project-URL: Documentation, https://github.com/Bühler Maximilian/PySimultan2#readme
|
5
5
|
Project-URL: Issues, https://github.com/Bühler Maximilian/PySimultan2/issues
|
6
6
|
Project-URL: Source, https://github.com/Bühler Maximilian/PySimultan2
|
@@ -1,9 +1,9 @@
|
|
1
1
|
PySimultan2/CHANGELOG.md,sha256=BBfCqgFQeigrlRQdHAksDz70-0fLKjzWkHbfFjJ2eDg,361
|
2
|
-
PySimultan2/__about__.py,sha256=
|
3
|
-
PySimultan2/__init__.py,sha256=
|
4
|
-
PySimultan2/data_model.py,sha256=
|
2
|
+
PySimultan2/__about__.py,sha256=PQD8y6NqxgcQTWZ0_8DSXDPWyJXVggB0QOB-reyq7bY,21
|
3
|
+
PySimultan2/__init__.py,sha256=42YM_zQUXdEjbjmgBI0nWJWsr_G6zNe7TxfFmS37mJk,3275
|
4
|
+
PySimultan2/data_model.py,sha256=UcscVLbBaEu9UhV2iaGJnrqX51G5PyEQuoXrz41Hq9g,36126
|
5
5
|
PySimultan2/default_types.py,sha256=K-Eka5BCKk8DT3HU5761Ym_-ZFmu1_Dro0zW0LVGoHA,27157
|
6
|
-
PySimultan2/files.py,sha256=
|
6
|
+
PySimultan2/files.py,sha256=qx3I9WVW3se2qbWfN9QYQXL8kV2jZjd7HZpRGANm3-U,26040
|
7
7
|
PySimultan2/multi_values.py,sha256=ZFXlTLuZo32x7_7diYAp2XEjp5uwgHLgNOzN7v74-5I,13650
|
8
8
|
PySimultan2/object_mapper.py,sha256=_SQye38NmIr4m_-X9CuvUJnVDBmjmUDdPH2bnaxpzKY,18546
|
9
9
|
PySimultan2/simultan_object.py,sha256=akaSUZZWIVfwx1wT5EdOgRR2UeShUthX-LE2Uk6w8CQ,19058
|
@@ -75,7 +75,7 @@ PySimultan2/resources/assimp.dll,sha256=HwfDwXqoPDTFRyoQpA3qmgZoUdFtziJkV5fNtktE
|
|
75
75
|
PySimultan2/resources/componentmanager.user,sha256=hrzr1US4pqkFnLHXcvPkvrgGd7QvlxaV8mhS6fuikEs,760
|
76
76
|
PySimultan2/resources/defaultsettings.xml,sha256=s6Tk1tubLz5UYqXZWpD42EDHzedemRY1nEneoIVcUfg,392
|
77
77
|
PySimultan2/resources/setup.bat,sha256=fjvvYfVM6TalS-QTSiKAbAId5nTsk8kGGo06ba-wWaY,32
|
78
|
-
pysimultan-0.5.9.dist-info/METADATA,sha256=
|
79
|
-
pysimultan-0.5.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
80
|
-
pysimultan-0.5.9.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
|
81
|
-
pysimultan-0.5.9.dist-info/RECORD,,
|
78
|
+
pysimultan-0.5.9.1.dist-info/METADATA,sha256=r7-W3hsJ4lhzjWrkvdGUonwCEu7rXALauh6621n73uM,6138
|
79
|
+
pysimultan-0.5.9.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
80
|
+
pysimultan-0.5.9.1.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
|
81
|
+
pysimultan-0.5.9.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|