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

New Article element types #92

Open
2 of 12 tasks
mpacer opened this issue Mar 4, 2018 · 0 comments
Open
2 of 12 tasks

New Article element types #92

mpacer opened this issue Mar 4, 2018 · 0 comments

Comments

@mpacer
Copy link
Collaborator

mpacer commented Mar 4, 2018

I've been moving us toward having functionality for different types of elements inside Articles inside their own classes rather than having such a monumental Article class.

This will help in a lot of ways but the biggest things have to do with bringing new people into the codebase. Specifically by localising the functionality, it'll be easier for people to trace down bugs, know where to introduce new functionality, test, write documentation for, &c..

So I figured that we should start compiling a list of element classes that should be created as we realise that they exist in the article itself:

  • License (complete w/ Properties #81)
  • Journal (complete w/Properties #81)
  • Dates
  • Doi
  • Urls
    • Url
  • Filename
  • Contributors (collection)
    • Contributor(base_class, raise NotImplementedErrors in init.py)
      • Author(Contributor)
      • Editor(Contributor)
  • Counts (maybe… not sure)

In the case of doi, url and filename the methods currently used to transform them could be contained within the classes, eliminating the need for the transformations scripts and tying the validation directly to the particular kinds of elements.

And there may be others but those are the ones that jump out at me at the moment.

@eseiver @sbassi

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

1 participant