PySimultan 0.5.9__py3-none-any.whl → 0.5.9.1__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- 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
|