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

Cyclic dependency within isodatetime #126

Open
kinow opened this issue Apr 5, 2019 · 1 comment
Open

Cyclic dependency within isodatetime #126

kinow opened this issue Apr 5, 2019 · 1 comment
Milestone

Comments

@kinow
Copy link
Member

kinow commented Apr 5, 2019

Running pydeps against Cylc master, without filtering out dependencies, I noticed that it reported zero cyclic dependency for Cylc, but one for isodatetime.

Executing pydeps --show-cycles isodatetime against latest version in master for isodatetime reports:

isodatetime

This is because (1) isodatetime.data depends on the (2) cylc.dumpers. (2) isodatetime.dumper's depends on the (3) isodatetime.parsers (this dependency is imported only in get_time_zone). And (3) isodatetime.parsers depends on (1) isodatetime.data.

This normally indicates that the design of the dependency between classes/categories can be simplified. Allowing easier maintenance (e.g. refactor, move classes to different packages, and so on).

@matthewrmshin matthewrmshin added this to the later milestone Apr 5, 2019
@matthewrmshin
Copy link
Member

Yes. We can do with a good refactor here. I believe we should rearrange the modules so we have a module for each of:

  • Duration (and its parser and dumper).
  • Calendar.
  • TimePoint (and its parser and dumper).
  • TimeRecurrence (and its parser and dumper).

@MetRonnie MetRonnie modified the milestones: 3.1.0, 4.0.0 Mar 30, 2022
@oliver-sanders oliver-sanders modified the milestones: 4.0.0, 3.2.0 May 17, 2022
@MetRonnie MetRonnie modified the milestones: 3.2.0, back-burner, 4.0.0 Oct 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants