Skip to content

Commit

Permalink
Technical upgrades (#70)
Browse files Browse the repository at this point in the history
* Update of the packages.

* Update of the packages.

* Update chrome service.

* Fixed tests.

* Switched mainly to pyproject.toml, added pre-commit.

* Cleanup of not used files, fix of pre-commit.
  • Loading branch information
JanPalasek committed Jul 8, 2023
1 parent 1fcb15b commit 3d6ef4a
Show file tree
Hide file tree
Showing 11 changed files with 1,046 additions and 106 deletions.
29 changes: 29 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
repos:
- repo: local
hooks:
- id: isort
name: isort
entry: isort
language: system
args: [--settings-path, pyproject.toml]
require_serial: true
files: ^(src/pretty_jupyter|tests)
types: [python]

- id: black
name: black
entry: black
language: system
args: [--config, pyproject.toml]
require_serial: true
files: ^(src/pretty_jupyter|tests)
types: [python]

- id: autoflake
name: autoflake
entry: autoflake
language: system
files: ^(src/pretty_jupyter|tests)
args: [--in-place]
require_serial: true
types: [python]
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ sphinx:

python:
install:
- requirements: docs/requirements_docs.txt
- requirements: docs/requirements-docs.txt
191 changes: 191 additions & 0 deletions docs/requirements-docs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
#
# This file is autogenerated by pip-compile with Python 3.9
# by the following command:
#
# pip-compile --extra=docs --no-emit-index-url --output-file=docs/requirements-docs.txt --resolver=backtracking pyproject.toml
#
alabaster==0.7.13
# via sphinx
asttokens==2.2.1
# via stack-data
attrs==23.1.0
# via
# jsonschema
# referencing
babel==2.12.1
# via sphinx
backcall==0.2.0
# via ipython
beautifulsoup4==4.12.2
# via nbconvert
bleach==6.0.0
# via nbconvert
cerberus==1.3.4
# via pretty-jupyter (pyproject.toml)
certifi==2023.5.7
# via requests
charset-normalizer==3.2.0
# via requests
click==8.1.4
# via pretty-jupyter (pyproject.toml)
colorama==0.4.6
# via
# click
# ipython
# sphinx
decorator==5.1.1
# via ipython
defusedxml==0.7.1
# via nbconvert
docutils==0.17.1
# via
# sphinx
# sphinx-rtd-theme
executing==1.2.0
# via stack-data
fastjsonschema==2.17.1
# via nbformat
idna==3.4
# via requests
imagesize==1.4.1
# via sphinx
importlib-metadata==6.8.0
# via
# jupyter-client
# nbconvert
# sphinx
ipython==8.14.0
# via pretty-jupyter (pyproject.toml)
ipython-genutils==0.2.0
# via pretty-jupyter (pyproject.toml)
jedi==0.18.2
# via ipython
jinja2==3.1.2
# via
# nbconvert
# pretty-jupyter (pyproject.toml)
# sphinx
jsonschema==4.18.0
# via nbformat
jsonschema-specifications==2023.6.1
# via jsonschema
jupyter-client==8.3.0
# via nbclient
jupyter-core==5.3.1
# via
# jupyter-client
# nbclient
# nbconvert
# nbformat
jupyterlab-pygments==0.2.2
# via nbconvert
markupsafe==2.1.3
# via
# jinja2
# nbconvert
matplotlib-inline==0.1.6
# via ipython
mistune==3.0.1
# via nbconvert
nbclient==0.8.0
# via nbconvert
nbconvert==7.6.0
# via pretty-jupyter (pyproject.toml)
nbformat==5.9.0
# via
# nbclient
# nbconvert
packaging==23.1
# via
# nbconvert
# sphinx
pandocfilters==1.5.0
# via nbconvert
parso==0.8.3
# via jedi
pickleshare==0.7.5
# via ipython
platformdirs==3.8.1
# via jupyter-core
prompt-toolkit==3.0.39
# via ipython
pure-eval==0.2.2
# via stack-data
pygments==2.15.1
# via
# ipython
# nbconvert
# sphinx
python-dateutil==2.8.2
# via jupyter-client
pyyaml==6.0
# via pretty-jupyter (pyproject.toml)
pyzmq==25.1.0
# via jupyter-client
referencing==0.29.1
# via
# jsonschema
# jsonschema-specifications
requests==2.31.0
# via sphinx
rpds-py==0.8.10
# via
# jsonschema
# referencing
six==1.16.0
# via
# asttokens
# bleach
# python-dateutil
snowballstemmer==2.2.0
# via sphinx
soupsieve==2.4.1
# via beautifulsoup4
sphinx==5.1.1
# via
# pretty-jupyter (pyproject.toml)
# sphinx-rtd-theme
sphinx-rtd-theme==1.0.0
# via pretty-jupyter (pyproject.toml)
sphinxcontrib-applehelp==1.0.4
# via sphinx
sphinxcontrib-devhelp==1.0.2
# via sphinx
sphinxcontrib-htmlhelp==2.0.1
# via sphinx
sphinxcontrib-jsmath==1.0.1
# via sphinx
sphinxcontrib-qthelp==1.0.3
# via sphinx
sphinxcontrib-serializinghtml==1.1.5
# via sphinx
stack-data==0.6.2
# via ipython
tinycss2==1.2.1
# via nbconvert
tornado==6.3.2
# via jupyter-client
traitlets==5.9.0
# via
# ipython
# jupyter-client
# jupyter-core
# matplotlib-inline
# nbclient
# nbconvert
# nbformat
typing-extensions==4.7.1
# via ipython
urllib3==2.0.3
# via requests
wcwidth==0.2.6
# via prompt-toolkit
webencodings==0.5.1
# via
# bleach
# tinycss2
zipp==3.15.0
# via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# setuptools
2 changes: 0 additions & 2 deletions docs/requirements_docs.txt

This file was deleted.

55 changes: 55 additions & 0 deletions make.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
param([string]$command)

$venv = $env:VENV
if ([string]::IsNullOrEmpty($venv)) {
$venv = "venv"
}

function Activate-Venv([string]$venv) {
python -m venv "$venv"
Write-Host "Activating environment '$venv'"
& ./$venv/Scripts/Activate.ps1
}

function Pip-Tools-Compile {
Write-Host "Compile packages into 'requirements-win.txt'..."
python -m piptools compile --extra=dev --resolver=backtracking --no-emit-index-url -o requirements-win.txt pyproject.toml
}

function Pip-Tools-Sync {
Write-Host "Syncing packages in 'requirements-win.txt' with the activated environment..."
python -m piptools sync "requirements-win.txt"
python -m pip install -e .
}


switch ($command) {
"install_dev" {
Activate-Venv -venv $venv
python -m pip install -r requirements-win.txt
python -m pip install -e .
# python -m pre_commit install
break
}
"compile" {
Activate-Venv -venv $venv
Pip-Tools-Compile
break
}
"sync" {
Activate-Venv -venv $venv
Pip-Tools-Sync
break
}
"up" {
Activate-Venv -venv $venv
Pip-Tools-Compile
Pip-Tools-Sync
break
}
"compile-docs" {
Activate-Venv -venv $venv
Write-Host "Compile packages into 'docs/requirements-docs-win.txt'..."
python -m piptools compile --extra=docs --resolver=backtracking --no-emit-index-url -o docs/requirements-docs.txt pyproject.toml
}
}
90 changes: 89 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,91 @@
[build-system]
requires = ["setuptools", "setuptools-scm"]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "pretty-jupyter"
authors = [{name = "Jan Palasek"}]
description = "Exports Jupyter notebook into beautiful and dynamic HTML report."
license = {file = "LICENSE.md"}
version = "2.0.5"
readme = "README.md"
dependencies = [
"click",
"ipython>=7.1",
"nbconvert>=6.0",
"jinja2>=3.0",
"ipython-genutils>=0.1",
"pyyaml>=5",
"cerberus>=1.1"
]
requires-python = ">=3.7"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Framework :: Jupyter",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Intended Audience :: Education",
"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11"
]

[tool.setuptools.packages.find]
where = ["src"]

[project.scripts]
pretty-jupyter = "pretty_jupyter.__main__:cli"

[project.optional-dependencies]
docs = [
"sphinx==5.1.1",
"sphinx_rtd_theme==1.0.0"
]
test = [
"pytest",
"tox",
"webdriver-manager",
"selenium",
"pandas",
"ipykernel"
]
dev = [
"jupyter",
"ipykernel",
"pandas",
"matplotlib",
"seaborn",
"pip-tools",
"black",
"isort",
"pylint",
"autoflake",
"pre-commit",
"pretty-jupyter[docs]",
"pretty-jupyter[test]"
]
all = [
"pretty-jupyter[dev]"
]

[project.urls]
Source = "https://github.com/JanPalasek/pretty-jupyter"
"Bug Tracker" = "https://github.com/JanPalasek/pretty-jupyter/issues"
CI = "https://github.com/JanPalasek/pretty-jupyter/actions"

[tool.pylint.format]
max-line-length = 100

[tool.black]
line-length = 100 # override black's default line-length

[tool.isort]
# make it compatible with black
profile = "black"
line_length = 100
Loading

0 comments on commit 3d6ef4a

Please sign in to comment.