GithubHelp home page GithubHelp logo

brainglobe / brainglobe-meta Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 0.0 124 KB

(Meta-)package repository for BrainGlobe's Python tools for computational neuroanatomy.

License: BSD 3-Clause "New" or "Revised" License

Python 100.00%

brainglobe-meta's Introduction

BrainGlobe

General information, resources, high-level issues and dicussions for the BrainGlobe project. For more details see brainglobe.info. For developer meeting summaries, see the Discussions tab - developer meetings are open to anyone, join the Zulip chat to participate.

brainglobe-meta's People

Contributors

adamltyson avatar alessandrofelder avatar igortatarnikov avatar k-meech avatar pre-commit-ci[bot] avatar willgraham01 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

brainglobe-meta's Issues

Think about how to deal with "difficult" dependencies in the metapackage

It's likely that some depenencies will be incompatible, especially for fetching & visualising different types of anatomy data for brainrender(napari). We should work out what the best way of dealing with these are, e.g.:

  • Only allow compatible dependencies
  • Install with brainrender[streamlines] and brainrender[geneexpression]

Remove morphapi from metapackage for now

Morphapi is causing installation issues on some silicon macs because wheels aren't available. Until apple silicon wheels are available (or it's on conda) it should be removed from the metapackage.

Ref #9

[Feature] Decide how to expose tools to users

Is your feature request related to a problem? Please describe.
We should decide which, and how, to expose the various BrainGlobe tools included in the meta-package to users.

We should also document the new names/aliases of the tools.

Describe the solution you'd like
Users should be able to select the tool they wish to use from methods within the brainglobe namespace, which we can achieve in the manner described in Adam's comment here.

Describe alternatives you've considered
We could also expose all the (user-facing) sub-packages in __init__.py which has the advantage of not making the sub-package documentation redundant (until it relocates to the new website of course, when we can update our pointers accordingly).

brainglobe/__init__.py

import cellfinder-core as cellfinder
import brainreg

Then users would still have access to every public-facing tool, but the under-the-hood packages can remain hidden and we can reorganise them as we see fit.

import bg.cellfinder

# Do cellfinder things with bg.cellfinder, without ever worrying about cellfinder-core being there under-the-hood.

[Feature] validation script/CLI/napari plugin

Is your feature request related to a problem? Please describe.
Like napari-info?

Import all tools, check cuda, check png.

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

`morphapi` external dependency is not available on `conda-forge`

Describe the bug
morphapi's dependency NeuroM is available on PyPI, but not on conda-forge. This means that we can't upload morphapi to conda-forge, and hence neither can we upload brainglobe either.

To Reproduce

grayskull pypi --strict-conda-forge morphapi

will report the missing conda-forge dependency. Searching conda-forge will verify this.

Possible Solutions

  • morphapi as an optional dependency in brainglobe? Then the conda-forge recipe can only be for the "base" brainglobe?

Update `CONTRIBUTING.md` to reflect `v2.0.0` conventions

Is your feature request related to a problem? Please describe.
CONTRIBUTING.md should be updated with suitable content reflecting the fact that contributing to this repository (the meta-package) and contributing to a specific BrainGlobe tool (EG cellfinder) will be done in different repositories.

All comments & thoughts welcome in the discussion.

Other things for us to consider and update are:

  • How do we introduce/point new developers to the appropriate repository for a particular tool, given that the meta-package purpose is to (somewhat) remove this distinction on the user-facing side.
  • Do we want to delegate contribution guidelines to the underlying tool repositories, point to a central guide (EG in this repo), or repeat ourselves to be safe across multiple repositories?

Describe the solution you'd like
The above points to be answered and content in CONTRIBUTING.md updated accordingly.

Describe alternatives you've considered

Additional context

[Feature] Ship `brainrender`

Is your feature request related to a problem? Please describe.
brainrender should be shipped as part of the meta-package.

Describe the solution you'd like
As above.

  • Add brainrender to the list of pip dependencies.
  • Add brainrender to conda-forge so the conda package can install it.

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.