Git Product home page Git Product logo

aiida-sssp's Introduction

aiida-sssp

This project is archived and has been fully superseded by aiida-pseudo which you can find here:

aiida-sssp's People

Contributors

sphuber avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

mbercx

aiida-sssp's Issues

Add option to install family from files on disk

Currently aiida-sssp only allows installing an SSSP configuration by downloading it from the Materials Cloud archive. This can be quite limiting for example when the resources are not available or the machine does not have internet connection. We should look into providing the option to install from resources already on disk. The question is what level of validation we implement. Do we allow non-official SSSP configurations and just any UPF family? Should we make a separate Group subclass for these, i.e. a UpfFamily with the SsspFamily being a subclass of this adding additional restrictions and validations?

aiida-sssp and aiida-core have confliction on the requirement for click package.

Hi,

See the following:

aiida-core 1.1.1 has requirement click==7.0

aiida-sssp 0.1.0 has requirement click~=7.1

So the two packages are incompatible. But if I change the version config in setup.json of aiida-core for this package to the following:

click~=7.1

This problem will disappear, but I still not so clear whether this this intentional revision will compromise the functions.

Regards

Add concept of recommended cutoffs bound to a pseudo family

This concept is currently loosely implemented by storing a regular Dict node, that contains an attribute that cross references the label of the Group of UpfData for which it provides the recommended cutoffs. This is necessary since there is no official link to couple a Dict node to a Group in aiida-core. Another possibility would be to store the data directly on the Group instance, but since it currently does not have a way to store arbitrary attributes, that is not possible. A final possibility would be to include a single Dict node in the collection of nodes of the Group itself

  • Loose Dict node loosely coupled through an attribute
  • Include Dict node as one of the nodes in the collection in the Group itself
  • Couple Dict node to Group through actual link, with custom LinkType
  • Store the cutoffs directly on the Group instance as metadata or attributes

The last two possibilities would first require more functionality to be implemented in aiida-core.

The `default_sssp_family` callback excepts if no family exists

Traceback (most recent call last):
  File "/home/sph/.virtualenvs/aiida_dev/bin/aiida-quantumespresso", line 10, in <module>
    sys.exit(cmd_root())
  File "/home/sph/.virtualenvs/aiida_dev/lib/python3.7/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/sph/.virtualenvs/aiida_dev/lib/python3.7/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/sph/.virtualenvs/aiida_dev/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/sph/.virtualenvs/aiida_dev/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/sph/.virtualenvs/aiida_dev/lib/python3.7/site-packages/click/core.py", line 1257, in invoke
    sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
  File "/home/sph/.virtualenvs/aiida_dev/lib/python3.7/site-packages/click/core.py", line 700, in make_context
    self.parse_args(ctx, args)
  File "/home/sph/.virtualenvs/aiida_dev/lib/python3.7/site-packages/click/core.py", line 1048, in parse_args
    value, args = param.handle_parse_result(ctx, opts, args)
  File "/home/sph/.virtualenvs/aiida_dev/lib/python3.7/site-packages/click/core.py", line 1630, in handle_parse_result
    value = invoke_param_callback(self.callback, ctx, self, value)
  File "/home/sph/.virtualenvs/aiida_dev/lib/python3.7/site-packages/click/core.py", line 123, in invoke_param_callback
    return callback(ctx, param, value)
  File "/home/sph/code/aiida/env/dev/aiida-sssp/aiida_sssp/cli/options.py", line 21, in default_sssp_family
    return QueryBuilder().append(SsspFamily).first()[0]
TypeError: 'NoneType' object is not subscriptable

Should functionality to be generalized to normal UPF families as well?

The functionality implemented so far is really useful to work with UPF families. However, the current design explicitly does not support any UPF family, but only well-defined SSSP families. It would be relatively easy to generalize the functionality and have the SsspFamily simply be a subclass of a generic UpfFamily that only allows SSSP configurations to be stored. The only problem here would be naming.

The most logical naming of the classes would be UpfFamily and SsspFamily with the latter being a subclass of the former. The most logical corresponding entry point names would be upf.family and sssp.family, respectively. However, given that the plugin package is called aiida-sssp, and convention states that the entry point prefix should therefore be sssp, these names would break convention.

Other options:

sssp.upf.family = aiida_sssp.groups.upf:UpfFamily
sssp.family = aiida_sssp.groups.sssp.SsspFamily

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.