Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
a89218f
build(deps-dev): bump pre-commit from 4.2.0 to 4.3.0
dependabot[bot] Aug 11, 2025
0630df6
Merge pull request #6 from PonyLianna/dependabot/pip/pre-commit-4.3.0
PonyLianna Sep 15, 2025
786eeac
update[pyproject]: pytest, pyinstaller, poethepoet, pydantic, chardet
PonyLianna Sep 15, 2025
1e5a130
Create python-package.yml
PonyLianna Sep 15, 2025
5753c89
update[pyproject]: poethepoet
PonyLianna Sep 22, 2025
c049b67
update[pyproject]: pyperclip
PonyLianna Sep 22, 2025
621b8ed
Merge remote-tracking branch 'origin/development' into development
PonyLianna Sep 22, 2025
dd13bcc
update[CI/CD]: python-package.yml
PonyLianna Sep 22, 2025
4f70f41
update[tests]: qepest.py dict -> model_dump
PonyLianna Sep 22, 2025
7c75607
fix[CICD]: python-package.yml
PonyLianna Sep 22, 2025
5f8e4df
fix[CICD]: python-package.yml
PonyLianna Sep 22, 2025
629ac22
build(deps-dev): bump pyperclip from 1.10.0 to 1.11.0
dependabot[bot] Sep 29, 2025
ea622c4
Merge pull request #12 from PonyLianna/dependabot/pip/pyperclip-1.11.0
PonyLianna Sep 29, 2025
9f4b5fb
build(deps): bump pydantic from 2.11.9 to 2.12.5
dependabot[bot] Dec 1, 2025
e9a0f29
Merge pull request #18 from PonyLianna/dependabot/pip/pydantic-2.12.5
PonyLianna Dec 9, 2025
472c535
build(deps-dev): bump pyinstaller from 6.16.0 to 6.18.0
dependabot[bot] Jan 19, 2026
9990813
Merge pull request #19 from PonyLianna/dependabot/pip/pyinstaller-6.18.0
PonyLianna Feb 3, 2026
0204a9c
fix: dto
PonyLianna Feb 6, 2026
babd789
fix: .gitignore
PonyLianna Feb 6, 2026
03f5840
feat: logger + env
PonyLianna Feb 8, 2026
938cb9c
fix: forgot to update pyproject.toml
PonyLianna Feb 8, 2026
ee5cc37
fix: APP_DEBUG_ENABLE inside logger init function
PonyLianna Feb 8, 2026
fc8a77b
feat(tests): Logging
PonyLianna Feb 8, 2026
0987b85
feat(packaging): __init__.py core
PonyLianna Feb 8, 2026
c8d10c7
Merge branch 'development' into logs
PonyLianna Feb 8, 2026
0d10b94
fix[poetry]: dependencies
PonyLianna Feb 8, 2026
bc06a1d
feat[poetry]: python version upgrade
PonyLianna Feb 8, 2026
4a12773
Merge pull request #20 from PonyLianna/logs
PonyLianna Feb 8, 2026
4654d31
feat[gui]: Optional pyperclip
PonyLianna Feb 8, 2026
3cbdecb
update[pyproject]: PEP 621
PonyLianna Feb 8, 2026
dc965aa
Merge pull request #21 from PonyLianna/gui
PonyLianna Feb 8, 2026
9bb0748
style[.env.example]: redundant spacing
PonyLianna Feb 8, 2026
e531d66
feat[python-package]: Workflow update
PonyLianna Feb 8, 2026
e401086
fix[python-package]: Pytest-coverage
PonyLianna Feb 8, 2026
9bbed3c
fix[pyproject, python-package]: forgot to commit pyproject ><
PonyLianna Feb 8, 2026
29f12a4
feat: Attemption of making a normal package
PonyLianna Feb 8, 2026
2c26cc6
feat[tests]: for previous commit
PonyLianna Feb 8, 2026
83cd1e7
fix[poetry.lock]: no comments here
PonyLianna Feb 8, 2026
c1bf0f2
fix: Mmm... Test coverage for only 40% instead of 60%
PonyLianna Feb 8, 2026
4ce7d19
fix: smoke test
PonyLianna Feb 8, 2026
c2b0c1d
feat[requirements]: update
PonyLianna Feb 8, 2026
abdaa39
fix[__init__]: absolete imports
PonyLianna Feb 9, 2026
1269bd0
fix[test_import_contract]: More robust smoke test
PonyLianna Feb 9, 2026
5aa34d2
fix: No more output files in QEPest Main logic
PonyLianna Feb 9, 2026
46cc00d
fix[test_cli_contract]: accidentially committed wrong test structure :/
PonyLianna Feb 9, 2026
7fbd772
feat[imports]: QEPestOutput
PonyLianna Feb 9, 2026
b4b994f
feat[test_qepest_file]: QEPestFile test
PonyLianna Feb 9, 2026
dffc2c7
feat[cli]: tests unification + version command
PonyLianna Feb 11, 2026
cc4f2bf
feat[test_import_contract]: Standartisation + helpers import test
PonyLianna Feb 11, 2026
399ceb9
style[test_logging]: Standartisation
PonyLianna Feb 11, 2026
cd2d127
style: rearrange
PonyLianna Feb 11, 2026
a9351fb
feat[CLI]: More stable approach of getting version of app
PonyLianna Feb 11, 2026
cec94ec
fix[tests]: Disable helpers imports
PonyLianna Feb 11, 2026
6bf3862
update[pre-commit]: flake8, black, check-merge-conflict, debug-statem…
PonyLianna Feb 11, 2026
81d96fc
fix[version]: 1.1.4
PonyLianna Feb 11, 2026
84e9e2b
Merge pull request #22 from PonyLianna/fixes
PonyLianna Feb 11, 2026
7257830
fix[helpers]: Forgot to add __all__
PonyLianna Feb 11, 2026
7ddaaf7
fix[test_logging]: B011
PonyLianna Feb 11, 2026
898c6e7
fix[version]: 1.1.5 Minor fix flake8 errors
PonyLianna Feb 11, 2026
c8d50d3
fix[qepest]: self.noError is a mistake
PonyLianna Feb 12, 2026
b1c47cc
build(deps-dev): bump pyinstaller from 6.18.0 to 6.19.0
dependabot[bot] Feb 16, 2026
d8c833b
refactor[QEPest]: Management initialisation
PonyLianna Mar 1, 2026
1d64fb2
Merge pull request #23 from PonyLianna/dependabot/pip/pyinstaller-6.19.0
PonyLianna Mar 1, 2026
2bf62b9
fix[python-package]: poetry
PonyLianna Mar 1, 2026
768cd9f
Merge branch 'refs/heads/development' into pre-release
PonyLianna Mar 1, 2026
725f77a
fix[workflow]: Again?
PonyLianna Mar 1, 2026
35ea8e4
fix[poetry]: lock ;/
PonyLianna Mar 1, 2026
17f21a8
feat[cli]: update version to 1.4.0 and refactor CLI and file handling
PonyLianna Mar 1, 2026
0d901b8
update[poetry.lock]: new versions
PonyLianna Mar 1, 2026
929e4a7
Merge pull request #24 from PonyLianna/pre-release
PonyLianna Mar 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: pythonQEPest

on:
push:
branches: [ "development" ]
pull_request:
branches: [ "development", "release" ]
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
python-version: [ "3.12", "3.13", "3.14" ]

steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Install Poetry
uses: snok/install-poetry@v1
with:
version: latest
virtualenvs-create: true
virtualenvs-in-project: true

- name: Install dependencies
run: |
poetry install --with dev --no-interaction

- name: Test with pytest (coverage)
run: |
poetry run pytest -q --cov=pythonQEPest --cov-report=term-missing --cov-fail-under=40

- name: Build dist
run: |
poetry build

- name: Install built wheel and smoke import
run: |
python -m pip install dist/*.whl
python -c "from pythonQEPest import QEPest, QEPestInput; QEPest().compute_params(QEPestInput(name='smoke', mol_weight=240.2127, log_p=3.2392, hbond_acceptors=5, hbond_donors=1, rotatable_bonds=4, aromatic_rings=1))"
216 changes: 216 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[codz]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py.cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
# Pipfile.lock

# UV
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# uv.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
# poetry.lock
# poetry.toml

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
# pdm.lock
# pdm.toml
.pdm-python
.pdm-build/

# pixi
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
# pixi.lock
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
# in the .venv directory. It is recommended not to include this directory in version control.
.pixi

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# Redis
*.rdb
*.aof
*.pid

# RabbitMQ
mnesia/
rabbitmq/
rabbitmq-data/

# ActiveMQ
activemq-data/

# SageMath parsed files
*.sage.py

# Environments
.env
.envrc
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
# .idea/

# Abstra
# Abstra is an AI-powered process automation framework.
# Ignore directories containing user credentials, local state, and settings.
# Learn more at https://abstra.io/docs
.abstra/

# Visual Studio Code
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
# and can be added to the global gitignore or merged into this file. However, if you prefer,
# you could uncomment the following to ignore the entire vscode folder
# .vscode/

# Ruff stuff:
.ruff_cache/

# PyPI configuration file
.pypirc

# Marimo
marimo/_static/
marimo/_lsp/
__marimo__/

# Streamlit
.streamlit/secrets.toml
25 changes: 25 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ repos:
pass_filenames: false
files: \.py$
exclude: ^tests/data/

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
Expand All @@ -17,3 +18,27 @@ repos:
files: \.py$
- id: check-yaml
files: \.ya?ml$
- id: check-merge-conflict
- id: debug-statements
- id: check-added-large-files

- repo: https://github.com/psf/black-pre-commit-mirror
rev: 26.1.0
hooks:
- id: black
# It is recommended to specify the latest version of Python
# supported by your project here, or alternatively use
# pre-commit's default_language_version, see
# https://pre-commit.com/#top_level-default_language_version
language_version: python3.13

- repo: https://github.com/pycqa/flake8
rev: 7.3.0
hooks:
- id: flake8
additional_dependencies:
- flake8-bugbear
- flake8-comprehensions
args:
- --max-line-length=88
- --extend-ignore=E203,W503
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ The rewritten version of Java QEPest. Made by PonyLianna (https://github.com/Pon
You can use a .exe version (which you can find at https://github.com/PonyLianna/pythonQEPest/releases)
or run it by yourself.

To be able to do it you'll need `Python >3.12 + pip3` (https://www.python.org/downloads/)
To be able to do it you'll need `Python >3.10 + pip3` (https://www.python.org/downloads/)

Further installation (I skip venv here):

Expand Down
Loading
Loading