vanheeringen-lab / seq2science

Automated and customizable preprocessing of Next-Generation Sequencing data, including full (sc)ATAC-seq, ChIP-seq, and (sc)RNA-seq workflows. Works equally easy with public as local data.
https://vanheeringen-lab.github.io/seq2science
MIT License
149 stars 26 forks source link

FR: update pyproject.toml #834

Open siebrenf opened 2 years ago

siebrenf commented 2 years ago

pip pyproject.toml and setuptools dont work nicely together yet.

I tried to make it work, but entry points and packages aren't implemented/documented properly yet. Here's what I got so far. So at least I didn't waste my afternoon too much.

btw, use validate-pyproject to check the file.

[project]
name = "seq2science"
version = "0.7.2"
description = "seq2science: easy pre-processing of ngs data."
readme = "README.md"
requires-python = ">3.6"
license = {file = "LICENSE"}
authors = [
    {name="Maarten van der Sande", email="M.vanderSande@science.ru.nl"},
    {name="Siebren Frölich", email="siebrenf@science.ru.nl"}
]
keywords = [
    "bioinformatics",
    "RNA-seq",
    "ATAC-seq",
    "ChIP-seq",
    "scRNA-seq",
    "scATAC-seq",
    "snakemake",
]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Developers",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: MIT License",
    "Operating System :: POSIX :: Linux",
    "Operating System :: MacOS :: MacOS X",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Topic :: Scientific/Engineering :: Bio-Informatics"]

packages = ["seq2science"]
package_data = "{'seq2science':['envs/*', 'imgs/*', 'rules/*', 'schemas/*', 'schemas/*/*', 'scripts/*', 'scripts/**/*', 'workflows/*/*']}"
include_package_data = true

[project.urls]
documentation = "https://vanheeringen-lab.github.io/seq2science"
repository = "https://github.com/vanheeringen-lab/seq2science"
changelog = "https://github.com/vanheeringen-lab/seq2science/blob/master/CHANGELOG.md"

[project.scripts]
seq2science = "bin/seq2science"
deseq2science = "bin/deseq2science"

[build-system]
requires = ["setuptools==59.4.0", "wheel", "toml"]
build-backend = "setuptools.build_meta"

# flake8 does not support pyproject.toml (yet?!)
# [flake8] ...
Maarten-vd-Sande commented 2 years ago

I know that the pyproject.toml isn't ideal, we just had a problem with it last week @tilschaef

Maybe we should instead parse the seq2science version from the toml file? I somehow get irky when the version is specified on multiple spots. Or even better we implement something like versioneer, but idk how that plays together with pyproject

Maarten-vd-Sande commented 2 years ago

Also maybe there is a better way to package? I just like pyproject.toml since I do believe it is the most sensible way to package afaik. However documentation and progress on it is super slow

Maarten-vd-Sande commented 2 years ago

@siebrenf should we just update it to this? Doesn't hurt I guess right, and it should be an improvement

stale[bot] commented 1 year ago

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?