Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor #796

Merged
merged 22 commits into from
Jul 26, 2022
Merged

Refactor #796

merged 22 commits into from
Jul 26, 2022

Conversation

jan-janssen
Copy link
Member

@jan-janssen jan-janssen commented Jul 22, 2022

The new structure consists of:

  • cli - command line interface
  • database - database interface
  • interfaces - abstract definition of interfaces
  • jobs - all job classes defined in pyiron_base
  • project - the project class
  • state - the configuration object
  • storage - the HDF5 interface
  • utils - general utilities which do not belong to one of the above

For more details:
pyiron/pyiron_developer_tutorial#6

@jan-janssen
Copy link
Member Author

One error remaining:

======================================================================
[279](https://github.com/pyiron/pyiron_base/runs/7460806627?check_suite_focus=true#step:5:280)
FAIL: test_copy_to_job (job.test_copyto.TestCopyTo)
[280](https://github.com/pyiron/pyiron_base/runs/7460806627?check_suite_focus=true#step:5:281)
----------------------------------------------------------------------
[281](https://github.com/pyiron/pyiron_base/runs/7460806627?check_suite_focus=true#step:5:282)
Traceback (most recent call last):
[282](https://github.com/pyiron/pyiron_base/runs/7460806627?check_suite_focus=true#step:5:283)
  File "/home/runner/work/pyiron_base/pyiron_base/tests/job/test_copyto.py", line 15, in test_copy_to_job
[283](https://github.com/pyiron/pyiron_base/runs/7460806627?check_suite_focus=true#step:5:284)
    self.assertTrue(job_ser['job_single/input/custom_dict'] is not None)
[284](https://github.com/pyiron/pyiron_base/runs/7460806627?check_suite_focus=true#step:5:285)
AssertionError: False is not true

@jan-janssen jan-janssen added the integration Start the integration tests with pyiron_atomistics/contrib for this PR label Jul 22, 2022
@jan-janssen
Copy link
Member Author

The integration tests fail until pyiron/pyiron_atomistics#687 is merged.

@jan-janssen
Copy link
Member Author

======================================================================
[871](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:872)
ERROR: sphinx.test_structure (unittest.loader._FailedTest)
[872](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:873)
----------------------------------------------------------------------
[873](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:874)
ImportError: Failed to import test module: sphinx.test_structure
[874](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:875)
Traceback (most recent call last):
[875](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:876)
  File "/usr/share/miniconda/envs/test/lib/python3.10/unittest/loader.py", line 436, in _find_test_path
[876](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:877)
    module = self._get_module_from_name(name)
[877](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:878)
  File "/usr/share/miniconda/envs/test/lib/python3.10/unittest/loader.py", line 377, in _get_module_from_name
[878](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:879)
    __import__(name)
[879](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:880)
  File "/home/runner/work/pyiron_base/pyiron_atomistics/tests/sphinx/test_structure.py", line 10, in <module>
[880](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:881)
    from pyiron_atomistics.atomistics.structure.atoms import Atoms
[881](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:882)
  File "/home/runner/work/pyiron_base/pyiron_atomistics/pyiron_atomistics/atomistics/structure/atoms.py", line 18, in <module>
[882](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:883)
    from pyiron_atomistics.atomistics.structure.pyscal import pyiron_to_pyscal_system
[883](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:884)
  File "/home/runner/work/pyiron_base/pyiron_atomistics/pyiron_atomistics/atomistics/structure/pyscal.py", line 7, in <module>
[884](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:885)
    import pyiron_atomistics.atomistics.structure.atoms
[885](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:886)
  File "/home/runner/work/pyiron_base/pyiron_atomistics/pyiron_atomistics/__init__.py", line 4, in <module>
[886](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:887)
    from pyiron_atomistics.project import Project
[887](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:888)
  File "/home/runner/work/pyiron_base/pyiron_atomistics/pyiron_atomistics/project.py", line 32, in <module>
[888](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:889)
    from pyiron_atomistics.atomistics.structure.atoms import Atoms
[889](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:890)
ImportError: cannot import name 'Atoms' from partially initialized module 'pyiron_atomistics.atomistics.structure.atoms' (most likely due to a circular import) (/home/runner/work/pyiron_base/pyiron_atomistics/pyiron_atomistics/atomistics/structure/atoms.py)
[890](https://github.com/pyiron/pyiron_base/runs/7461310675?check_suite_focus=true#step:8:891)

@jan-janssen
Copy link
Member Author

Waiting for pyiron/pyiron_contrib#459

@jan-janssen
Copy link
Member Author

Ready for review

@liamhuber
Copy link
Member

Won't be able to look at it in depth until Monday, but I like the principle and the top level folder names look pretty reasonable!

@@ -1366,7 +1366,14 @@ def to_object(self, class_name=None, **qwargs):
)
class_name = class_name or self.get("TYPE")
class_path = class_name.split("<class '")[-1].split("'>")[0]
if not class_path.startswith("abc."):
class_convert_dict = { # Fix backwards compatibility
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comment up to which version this backwards fix is required 0.5.19

@jan-janssen
Copy link
Member Author

Move object to interfaces

@jan-janssen
Copy link
Member Author

Split pyiron_base.utils.util into separate modules.

@jan-janssen
Copy link
Member Author

Add description

@jan-janssen jan-janssen merged commit 9827ff4 into master Jul 26, 2022
@delete-merged-branch delete-merged-branch bot deleted the refactor branch July 26, 2022 03:49
@pmrv
Copy link
Contributor

pmrv commented Sep 2, 2022

It would be nice to have a little spec file that details what code goes into which module for new devs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
integration Start the integration tests with pyiron_atomistics/contrib for this PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants