Skip to content

Commit

Permalink
Replace setup.py with pyproject.toml (#2353)
Browse files Browse the repository at this point in the history
* Replace setup.py with pyproject.toml

* [automated] Update CHANGELOG.md

* Add myself as author

---------

Co-authored-by: MultiQC Bot <multiqc-bot@seqera.io>
  • Loading branch information
vladsavelyev and multiqc-bot committed Feb 23, 2024
1 parent b1c7066 commit 2bda311
Show file tree
Hide file tree
Showing 4 changed files with 247 additions and 268 deletions.
6 changes: 3 additions & 3 deletions .github/RELEASE_CHECKLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

This checklist is for my own reference, as I forget the steps every time.

1. Check that everything is up to date and ready to go
1. Check that everything is up-to-date and ready to go
2. Figure out what this release should be called
3. Update version numbers in code: `setup.py`, `CHANGELOG.md`
4. Link the changelog subheading to the as yet non-existant release URL. Add date.
3. Update version numbers in code: `pyproject.toml`, `CHANGELOG.md`
4. Link the changelog subheading to the as yet non-existent release URL. Add date.
5. Install the package again in `install` mode:

```bash
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- MegaQC: dump `pconfig` ([#2344](https://github.com/MultiQC/MultiQC/pull/2344))
- Catch non-hashable values in table data ([#2348](https://github.com/MultiQC/MultiQC/pull/2348))
- Prevent parsing numerical sample names in heatmap ([#2349](https://github.com/MultiQC/MultiQC/pull/2349))
- Replace `setup.py` with `pyproject.toml` ([#2353](https://github.com/MultiQC/MultiQC/pull/2353))
- Infinite dmax or dmin fail JSON dump load in JavaScript ([#2354](https://github.com/MultiQC/MultiQC/pull/2354))
- Wrap `full_figure_for_development` in try to handle Kaleido error ([#2359](https://github.com/MultiQC/MultiQC/pull/2359))
- Add box plot ([#2358](https://github.com/MultiQC/MultiQC/pull/2358))
Expand Down
240 changes: 240 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,243 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "multiqc"
version = "1.21dev"
dependencies = [
"click",
"coloredlogs",
"humanize",
"importlib-metadata",
"jinja2>=3.0.0",
"kaleido", # for flat plot export
"markdown",
"numpy",
"packaging",
"requests",
"Pillow>=10", # to add a logo into flat plots
"plotly>=5.18",
"pyyaml>=4",
"pyaml-env",
"rich>=10",
"rich-click",
"spectra>=0.0.10",
]
requires-python = ">=3.8"
authors = [
{name = "Phil Ewels", email = "phil.ewels@seqera.io"},
{name = "Vlad Savelyev", email = "vladislav.savelyev@seqera.io"},
]
description = "Create aggregate bioinformatics analysis reports across many samples and tools"
readme = "README.md"
license = {file = "LICENSE"}
keywords = ["bioinformatics", "biology", "sequencing", "NGS", "next generation sequencing", "quality control"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Environment :: Web Environment",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Natural Language :: English",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX",
"Operating System :: Unix",
"Programming Language :: Python",
"Programming Language :: JavaScript",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Bio-Informatics",
"Topic :: Scientific/Engineering :: Visualization",
]

[project.optional-dependencies]
matplotlib = [
"matplotlib>=2.1.1",
]
dev = [
"pre-commit",
"ruff",
]

[project.urls]
Homepage = "https://multiqc.info"
Repository = "https://github.com/MultiQC/MultiQC"
Issues = "https://github.com/MultiQC/MultiQC/issues"
Documentation = "https://multiqc.info/docs"
Changelog = "https://github.com/MultiQC/MultiQC/blob/main/CHANGELOG.md"

[project.entry-points.console_scripts]
multiqc = "multiqc.__main__:run_multiqc"

[project.entry-points."multiqc.modules.v1"]
adapterRemoval = "multiqc.modules.adapterRemoval:MultiqcModule"
afterqc = "multiqc.modules.afterqc:MultiqcModule"
anglerfish = "multiqc.modules.anglerfish:MultiqcModule"
bakta = "multiqc.modules.bakta:MultiqcModule"
bamdst = "multiqc.modules.bamdst:MultiqcModule"
bamtools = "multiqc.modules.bamtools:MultiqcModule"
bbduk = "multiqc.modules.bbduk:MultiqcModule"
bbmap = "multiqc.modules.bbmap:MultiqcModule"
bcftools = "multiqc.modules.bcftools:MultiqcModule"
bcl2fastq = "multiqc.modules.bcl2fastq:MultiqcModule"
bclconvert = "multiqc.modules.bclconvert:MultiqcModule"
biobambam2 = "multiqc.modules.biobambam2:MultiqcModule"
biobloomtools = "multiqc.modules.biobloomtools:MultiqcModule"
biscuit = "multiqc.modules.biscuit:MultiqcModule"
bismark = "multiqc.modules.bismark:MultiqcModule"
bowtie1 = "multiqc.modules.bowtie1:MultiqcModule"
bowtie2 = "multiqc.modules.bowtie2:MultiqcModule"
bracken = "multiqc.modules.bracken:MultiqcModule"
busco = "multiqc.modules.busco:MultiqcModule"
bustools = "multiqc.modules.bustools:MultiqcModule"
ccs = "multiqc.modules.ccs:MultiqcModule"
cellranger = "multiqc.modules.cellranger:MultiqcModule"
checkqc = "multiqc.modules.checkqc:MultiqcModule"
clipandmerge = "multiqc.modules.clipandmerge:MultiqcModule"
clusterflow = "multiqc.modules.clusterflow:MultiqcModule"
conpair = "multiqc.modules.conpair:MultiqcModule"
custom_content = "multiqc.modules.custom_content:custom_module_classes" # special case
cutadapt = "multiqc.modules.cutadapt:MultiqcModule"
damageprofiler = "multiqc.modules.damageprofiler:MultiqcModule"
dedup = "multiqc.modules.dedup:MultiqcModule"
deeptools = "multiqc.modules.deeptools:MultiqcModule"
diamond = "multiqc.modules.diamond:MultiqcModule"
disambiguate = "multiqc.modules.disambiguate:MultiqcModule"
dragen = "multiqc.modules.dragen:MultiqcModule"
dragen_fastqc = "multiqc.modules.dragen_fastqc:MultiqcModule"
eigenstratdatabasetools = "multiqc.modules.eigenstratdatabasetools:MultiqcModule"
fastp = "multiqc.modules.fastp:MultiqcModule"
fastq_screen = "multiqc.modules.fastq_screen:MultiqcModule"
fastqc = "multiqc.modules.fastqc:MultiqcModule"
featureCounts = "multiqc.modules.featureCounts:MultiqcModule"
fgbio = "multiqc.modules.fgbio:MultiqcModule"
flash = "multiqc.modules.flash:MultiqcModule"
flexbar = "multiqc.modules.flexbar:MultiqcModule"
filtlong = "multiqc.modules.filtlong:MultiqcModule"
freyja = "multiqc.modules.freyja:MultiqcModule"
gffcompare = "multiqc.modules.gffcompare:MultiqcModule"
gatk = "multiqc.modules.gatk:MultiqcModule"
goleft_indexcov = "multiqc.modules.goleft_indexcov:MultiqcModule"
gopeaks = "multiqc.modules.gopeaks:MultiqcModule"
happy = "multiqc.modules.happy:MultiqcModule"
hicexplorer = "multiqc.modules.hicexplorer:MultiqcModule"
hicpro = "multiqc.modules.hicpro:MultiqcModule"
hicup = "multiqc.modules.hicup:MultiqcModule"
hifiasm = "multiqc.modules.hifiasm:MultiqcModule"
hisat2 = "multiqc.modules.hisat2:MultiqcModule"
homer = "multiqc.modules.homer:MultiqcModule"
hops = "multiqc.modules.hops:MultiqcModule"
htseq = "multiqc.modules.htseq:MultiqcModule"
humid = "multiqc.modules.humid:MultiqcModule"
interop = "multiqc.modules.interop:MultiqcModule"
ivar = "multiqc.modules.ivar:MultiqcModule"
jcvi = "multiqc.modules.jcvi:MultiqcModule"
jellyfish = "multiqc.modules.jellyfish:MultiqcModule"
kaiju = "multiqc.modules.kaiju:MultiqcModule"
kallisto = "multiqc.modules.kallisto:MultiqcModule"
kat = "multiqc.modules.kat:MultiqcModule"
kraken = "multiqc.modules.kraken:MultiqcModule"
leehom = "multiqc.modules.leehom:MultiqcModule"
librarian = "multiqc.modules.librarian:MultiqcModule"
lima = "multiqc.modules.lima:MultiqcModule"
longranger = "multiqc.modules.longranger:MultiqcModule"
macs2 = "multiqc.modules.macs2:MultiqcModule"
malt = "multiqc.modules.malt:MultiqcModule"
mapdamage = "multiqc.modules.mapdamage:MultiqcModule"
megahit = "multiqc.modules.megahit:MultiqcModule"
metaphlan = "multiqc.modules.metaphlan:MultiqcModule"
methylqa = "multiqc.modules.methylqa:MultiqcModule"
minionqc = "multiqc.modules.minionqc:MultiqcModule"
mirtop = "multiqc.modules.mirtop:MultiqcModule"
mirtrace = "multiqc.modules.mirtrace:MultiqcModule"
mosdepth = "multiqc.modules.mosdepth:MultiqcModule"
motus = "multiqc.modules.motus:MultiqcModule"
mtnucratio = "multiqc.modules.mtnucratio:MultiqcModule"
multivcfanalyzer = "multiqc.modules.multivcfanalyzer:MultiqcModule"
nanostat = "multiqc.modules.nanostat:MultiqcModule"
nextclade = "multiqc.modules.nextclade:MultiqcModule"
ngsderive = "multiqc.modules.ngsderive:MultiqcModule"
nonpareil = "multiqc.modules.nonpareil:MultiqcModule"
odgi = "multiqc.modules.odgi:MultiqcModule"
optitype = "multiqc.modules.optitype:MultiqcModule"
pangolin = "multiqc.modules.pangolin:MultiqcModule"
pbmarkdup = "multiqc.modules.pbmarkdup:MultiqcModule"
peddy = "multiqc.modules.peddy:MultiqcModule"
phantompeakqualtools = "multiqc.modules.phantompeakqualtools:MultiqcModule"
picard = "multiqc.modules.picard:MultiqcModule"
porechop = "multiqc.modules.porechop:MultiqcModule"
preseq = "multiqc.modules.preseq:MultiqcModule"
prinseqplusplus = "multiqc.modules.prinseqplusplus:MultiqcModule"
prokka = "multiqc.modules.prokka:MultiqcModule"
purple = "multiqc.modules.purple:MultiqcModule"
pychopper = "multiqc.modules.pychopper:MultiqcModule"
pycoqc = "multiqc.modules.pycoqc:MultiqcModule"
qc3C = "multiqc.modules.qc3C:MultiqcModule"
qorts = "multiqc.modules.qorts:MultiqcModule"
qualimap = "multiqc.modules.qualimap:MultiqcModule"
quast = "multiqc.modules.quast:MultiqcModule"
rna_seqc = "multiqc.modules.rna_seqc:MultiqcModule"
rockhopper = "multiqc.modules.rockhopper:MultiqcModule"
rsem = "multiqc.modules.rsem:MultiqcModule"
rseqc = "multiqc.modules.rseqc:MultiqcModule"
seqera_cli = "multiqc.modules.seqera_cli:MultiqcModule"
salmon = "multiqc.modules.salmon:MultiqcModule"
sambamba = "multiqc.modules.sambamba:MultiqcModule"
samblaster = "multiqc.modules.samblaster:MultiqcModule"
samtools = "multiqc.modules.samtools:MultiqcModule"
sargasso = "multiqc.modules.sargasso:MultiqcModule"
seqyclean = "multiqc.modules.seqyclean:MultiqcModule"
seqwho = "multiqc.modules.seqwho:MultiqcModule"
sexdeterrmine = "multiqc.modules.sexdeterrmine:MultiqcModule"
sickle = "multiqc.modules.sickle:MultiqcModule"
skewer = "multiqc.modules.skewer:MultiqcModule"
slamdunk = "multiqc.modules.slamdunk:MultiqcModule"
snippy = "multiqc.modules.snippy:MultiqcModule"
snpeff = "multiqc.modules.snpeff:MultiqcModule"
snpsplit = "multiqc.modules.snpsplit:MultiqcModule"
somalier = "multiqc.modules.somalier:MultiqcModule"
sortmerna = "multiqc.modules.sortmerna:MultiqcModule"
sourmash = "multiqc.modules.sourmash:MultiqcModule"
stacks = "multiqc.modules.stacks:MultiqcModule"
star = "multiqc.modules.star:MultiqcModule"
supernova = "multiqc.modules.supernova:MultiqcModule"
theta2 = "multiqc.modules.theta2:MultiqcModule"
tophat = "multiqc.modules.tophat:MultiqcModule"
trimmomatic = "multiqc.modules.trimmomatic:MultiqcModule"
truvari = "multiqc.modules.truvari:MultiqcModule"
umitools = "multiqc.modules.umitools:MultiqcModule"
varscan2 = "multiqc.modules.varscan2:MultiqcModule"
vcftools = "multiqc.modules.vcftools:MultiqcModule"
vep = "multiqc.modules.vep:MultiqcModule"
verifybamid = "multiqc.modules.verifybamid:MultiqcModule"
whatshap = "multiqc.modules.whatshap:MultiqcModule"
xenome = "multiqc.modules.xenome:MultiqcModule"
xengsort = "multiqc.modules.xengsort:MultiqcModule"

[project.entry-points."multiqc.templates.v1"]
default = "multiqc.templates.default"
sections = "multiqc.templates.sections"
simple = "multiqc.templates.simple"
gathered = "multiqc.templates.gathered"
highcharts = "multiqc.templates.highcharts"
geo = "multiqc.templates.geo"

### See https://multiqc.info/docs/#multiqc-plugins for documentation
#[project.entry-points."multiqc.cli_options.v1"]
#my-new-option = "myplugin.cli:new_option"
#
#[project.entry-points."multiqc.hooks.v1"]
#before_config = "myplugin.hooks:before_config"
#config_loaded = "myplugin.hooks:config_loaded"
#execution_start = "myplugin.hooks:execution_start"
#before_modules = "myplugin.hooks:before_modules"
#after_modules = "myplugin.hooks:after_modules"
#before_report_generation = "myplugin.hooks:before_report_generation"
#execution_finish = "myplugin.hooks:execution_finish"

[tool.setuptools]
packages = ["multiqc"]

[tool.ruff]
line-length = 120
target-version = "py312"
Expand Down

0 comments on commit 2bda311

Please sign in to comment.