diff --git a/src/caosadvancedtools/converter/labfolder_export.py b/src/caosadvancedtools/converter/labfolder_export.py index 172ed993ecf0bc96d39a57f06082d7f83716ba19..6e282218b6d451749ad3070693d38299663f1bee 100644 --- a/src/caosadvancedtools/converter/labfolder_export.py +++ b/src/caosadvancedtools/converter/labfolder_export.py @@ -22,17 +22,7 @@ """ Imports labfolder exports """ import os -import re -import shutil -import subprocess -import sys -import tempfile -import time -import warnings -from io import BytesIO, StringIO - -import requests -import yaml + from bs4 import BeautifulSoup import caosdb as db @@ -73,8 +63,8 @@ def get_author_from_entry(entry): def val_or_none(stuff): if len(stuff) == 0: return None - else: - return stuff[0].getText() + + return stuff[0].getText() def add_property_from_data_element(dbrecord, element): diff --git a/src/caosadvancedtools/scifolder/experiment_cfood.py b/src/caosadvancedtools/scifolder/experiment_cfood.py index 38606b5f8ffd372d7bf6f507ed96738d9345f16c..83329863433d302e16744a781a3b599fe0bb11f5 100644 --- a/src/caosadvancedtools/scifolder/experiment_cfood.py +++ b/src/caosadvancedtools/scifolder/experiment_cfood.py @@ -17,15 +17,15 @@ # along with this program. If not, see <https://www.gnu.org/licenses/>. import caosdb as db -from caosadvancedtools.cfood import (AbstractFileCFood, assure_has_description, - assure_has_parent, assure_has_property, - assure_object_is_in_list, get_entity) -from caosadvancedtools.read_md_header import get_header +from caosadvancedtools.cfood import (AbstractFileCFood, + assure_has_property, + assure_object_is_in_list, + ) from .generic_pattern import full_pattern from .utils import parse_responsibles, reference_records_corresponding_to_files from .withreadme import DATAMODEL as dm -from .withreadme import RESULTS, REVISIONOF, SCRIPTS, WithREADME, get_glob +from .withreadme import RESULTS, REVISIONOF, WithREADME, get_glob class ExperimentCFood(AbstractFileCFood, WithREADME): @@ -42,7 +42,10 @@ class ExperimentCFood(AbstractFileCFood, WithREADME): super().__init__(*args, **kwargs) WithREADME.__init__(self) - self.name_map = {}, + self.name_map = ({}, ) + self.experiment = None + self.people = None + self.project = None @staticmethod def get_re(): diff --git a/src/caosadvancedtools/scifolder/publication_cfood.py b/src/caosadvancedtools/scifolder/publication_cfood.py index fc78e5b759e98e8989c952ccbafeef117e2ed33d..68e345aca1bd650b4da784f4741866683bd4f04a 100644 --- a/src/caosadvancedtools/scifolder/publication_cfood.py +++ b/src/caosadvancedtools/scifolder/publication_cfood.py @@ -16,18 +16,14 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. -import os -from itertools import chain - import caosdb as db from caosadvancedtools.cfood import (AbstractFileCFood, assure_object_is_in_list, fileguide, - get_entity) + ) from caosadvancedtools.read_md_header import get_header -from caosadvancedtools.utils import find_records_that_reference_ids from .generic_pattern import date_suffix_pattern, readme_pattern -from .utils import (get_files_referenced_by_field, parse_responsibles, +from .utils import (parse_responsibles, reference_records_corresponding_to_files) from .withreadme import DATAMODEL as dm from .withreadme import (RESULTS, REVISIONOF, SCRIPTS, SOURCES, WithREADME, @@ -37,16 +33,15 @@ from .withreadme import (RESULTS, REVISIONOF, SCRIPTS, SOURCES, WithREADME, def folder_to_type(name): if name == "Theses": return "Thesis" - elif name == "Articles": + if name == "Articles": return "Article" - elif name == "Posters": + if name == "Posters": return "Poster" - elif name == "Presentations": + if name == "Presentations": return "Presentation" - elif name == "Reports": + if name == "Reports": return "Report" - else: - raise ValueError() + raise ValueError() class PublicationCFood(AbstractFileCFood, WithREADME): @@ -58,6 +53,8 @@ class PublicationCFood(AbstractFileCFood, WithREADME): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) WithREADME.__init__(self) + self.people = None + self.publication = None def collect_information(self): self.find_referenced_files([RESULTS, SOURCES, SCRIPTS]) diff --git a/src/caosadvancedtools/scifolder/result_table_cfood.py b/src/caosadvancedtools/scifolder/result_table_cfood.py index deaa2d00118659a9b177a05fe40b19a1793a16fb..e32cd0bd1efe77d5be4583c8bae764a677e33fc4 100644 --- a/src/caosadvancedtools/scifolder/result_table_cfood.py +++ b/src/caosadvancedtools/scifolder/result_table_cfood.py @@ -20,17 +20,12 @@ import re import caosdb as db import pandas as pd -from caosadvancedtools.cfood import (AbstractFileCFood, assure_has_description, - assure_has_parent, assure_has_property, - assure_object_is_in_list, get_entity) -from caosadvancedtools.read_md_header import get_header +from caosadvancedtools.cfood import (AbstractFileCFood, + ) from ..cfood import assure_property_is, fileguide from .experiment_cfood import ExperimentCFood from .generic_pattern import date_pattern, date_suffix_pattern, project_pattern -from .utils import parse_responsibles, reference_records_corresponding_to_files -from .withreadme import DATAMODEL as dm -from .withreadme import RESULTS, REVISIONOF, SCRIPTS, WithREADME, get_glob # TODO similarities with TableCrawler @@ -49,6 +44,9 @@ class ResultTableCFood(AbstractFileCFood): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.table = pd.read_csv(fileguide.access(self.crawled_path)) + self.recs = [] + self.experiment = None + self.project = None @staticmethod def get_re(): @@ -60,7 +58,7 @@ class ResultTableCFood(AbstractFileCFood): self.experiment, self.project = ( ExperimentCFood.create_identifiable_experiment(self.match)) - for idx, row in self.table.iterrows(): + for _, row in self.table.iterrows(): rec = db.Record() rec.add_parent(self.match.group("recordtype")) @@ -77,10 +75,11 @@ class ResultTableCFood(AbstractFileCFood): self.identifiables.extend([self.project, self.experiment]) def update_identifiables(self): - for ii, (idx, row) in enumerate(self.table.iterrows()): + for ii, (_, row) in enumerate(self.table.iterrows()): for col in row.index: match = re.match(ResultTableCFood.property_name_re, col) - assure_property_is(self.recs[ii], match.group("pname"), row.loc[col], to_be_updated=self.to_be_updated) + assure_property_is(self.recs[ii], match.group("pname"), row.loc[col], + to_be_updated=self.to_be_updated) assure_property_is(self.experiment, self.match.group("recordtype"), self.recs, to_be_updated=self.to_be_updated, datatype=db.LIST(self.match.group("recordtype"))) diff --git a/src/caosadvancedtools/scifolder/software_cfood.py b/src/caosadvancedtools/scifolder/software_cfood.py index 4992fc546fd7ca18ac3e96a0ee0e5039fe6165b6..d91817f10a278b91f7c52aa1a0674b1a2daa0394 100644 --- a/src/caosadvancedtools/scifolder/software_cfood.py +++ b/src/caosadvancedtools/scifolder/software_cfood.py @@ -40,6 +40,9 @@ class SoftwareCFood(AbstractFileCFood, WithREADME): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) WithREADME.__init__(self) + self.people = None + self.software = None + self.softwareversion = None def collect_information(self): self.find_referenced_files([BINARIES, SOURCECODE])