Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert flamel to a simple CLI #10

Merged
merged 27 commits into from
Nov 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d627c39
Fix broken call to alchemlyb
schlaicha Nov 6, 2020
d9a472e
Some spelling corrections and additions
hejamu Nov 9, 2020
801e057
Added several alchemical-analysis cli features.
hejamu Nov 11, 2020
e081659
Added several alchemical-analysis cli features.
hejamu Nov 11, 2020
d18aefa
Reflect features in README
hejamu Nov 11, 2020
761cf82
Fixed kcal calculation error.
hejamu Nov 11, 2020
fc7b500
Add information about the pickle file.
hejamu Nov 11, 2020
5c1070b
Fix closing backtick
hejamu Nov 11, 2020
40578e5
Fixed unit conversion error
hejamu Nov 16, 2020
738dd88
Add missing unit conversion in pickle output
schlaicha Dec 30, 2020
e3c916c
Added support for recursive file search
hejamu Mar 8, 2021
c7cbfd1
Merge pull request #1 from schlaicha/feature
hejamu Apr 5, 2021
60f4510
Addressing comments by @orbeckst.
hejamu Sep 21, 2021
33ad6c5
reverts changes in d627c399c72e9581dfbd4a7407242aeaff44673e
hejamu Sep 22, 2021
dea40e9
initial commit
xiki-tempula Nov 6, 2022
7f69278
remove docs
xiki-tempula Nov 6, 2022
0d67037
add test
xiki-tempula Nov 6, 2022
7b2a9f3
update
xiki-tempula Nov 6, 2022
0fab4c4
update
xiki-tempula Nov 6, 2022
ce7f359
update test
xiki-tempula Nov 6, 2022
fc2b733
update env
xiki-tempula Nov 6, 2022
73728d9
update
xiki-tempula Nov 6, 2022
b74f509
change read me
xiki-tempula Nov 6, 2022
b6543df
update
xiki-tempula Nov 6, 2022
bcb21a8
add AUTHOR and CHANGES
orbeckst Nov 6, 2022
91d1cc4
Merge branch 'feature' of https://github.com/hejamu/flamel into hejam…
orbeckst Nov 6, 2022
f99f74c
Merge branch 'feat_ABFE' of https://github.com/xiki-tempula/flamel in…
orbeckst Nov 6, 2022
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
14 changes: 14 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Codecov configuration to make it a bit less noisy
coverage:
status:
patch: false
project:
default:
threshold: 50%
comment:
layout: "header"
require_changes: false
branches: null
behavior: default
flags: null
paths: null
42 changes: 42 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# How to contribute

We welcome contributions from external contributors, and this document
describes how to merge code changes into this flamel.

## Getting Started

* Make sure you have a [GitHub account](https://github.com/signup/free).
* [Fork](https://help.github.com/articles/fork-a-repo/) this repository on GitHub.
* On your local machine,
[clone](https://help.github.com/articles/cloning-a-repository/) your fork of
the repository.

## Making Changes

* Add some really awesome code to your local fork. It's usually a [good
idea](http://blog.jasonmeridth.com/posts/do-not-issue-pull-requests-from-your-master-branch/)
to make changes on a
[branch](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/)
with the branch name relating to the feature you are going to add.
* When you are ready for others to examine and comment on your new feature,
navigate to your fork of flamel on GitHub and open a [pull
request](https://help.github.com/articles/using-pull-requests/) (PR). Note that
after you launch a PR from one of your fork's branches, all
subsequent commits to that branch will be added to the open pull request
automatically. Each commit added to the PR will be validated for
mergability, compilation and test suite compliance; the results of these tests
will be visible on the PR page.
* If you're providing a new feature, you must add test cases and documentation.
* When the code is ready to go, make sure you run the test suite using pytest.
* When you're ready to be considered for merging, check the "Ready to go"
box on the PR page to let the flamel devs know that the changes are complete.
The code will not be merged until this box is checked, the continuous
integration returns checkmarks,
and multiple core developers give "Approved" reviews.

# Additional Resources

* [General GitHub documentation](https://help.github.com/)
* [PR best practices](http://codeinthehole.com/writing/pull-requests-and-other-good-practices-for-teams-using-github/)
* [A guide to contributing to software packages](http://www.contribution-guide.org)
* [Thinkful PR example](http://www.thinkful.com/learn/github-pull-request-tutorial/#Time-to-Submit-Your-First-PR)
12 changes: 12 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
## Description
Provide a brief description of the PR's purpose here.

## Todos
Notable points that this PR has either accomplished or will accomplish.
- [ ] TODO 1

## Questions
- [ ] Question1

## Status
- [ ] Ready to go
64 changes: 64 additions & 0 deletions .github/workflows/CI.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: CI

on:
# GitHub has started calling new repo's first branch "main" https://github.com/github/renaming
# The cookiecutter uses the "--initial-branch" flag when it runs git-init
push:
branches:
- "master"
pull_request:
branches:
- "master"
schedule:
# Weekly tests run on main by default:
# Scheduled workflows run on the latest commit on the default or base branch.
# (from https://help.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events-schedule)
- cron: "0 0 * * 0"

jobs:
test:
name: Test on ${{ matrix.os }}, Python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macOS-latest, ubuntu-latest, windows-latest]
python-version: [3.8, 3.9, "3.10"]

steps:
- uses: actions/checkout@v3

- name: Additional info about the build
shell: bash
run: |
uname -a
df -h
ulimit -a

# More info on options: https://github.com/marketplace/actions/provision-with-micromamba
- uses: mamba-org/provision-with-micromamba@main
with:
environment-file: devtools/conda-envs/test_env.yaml
environment-name: test
channels: conda-forge,defaults
extra-specs: |
python=${{ matrix.python-version }}

- name: Install package
# conda setup requires this special shell
shell: bash -l {0}
run: |
python -m pip install . --no-deps
micromamba list

- name: Run tests
# conda setup requires this special shell
shell: bash -l {0}
run: |
pytest -v --cov=flamel --cov-report=xml --color=yes flamel/tests/

- name: CodeCov
uses: codecov/codecov-action@v1
with:
file: ./coverage.xml
flags: unittests
name: codecov-${{ matrix.os }}-py${{ matrix.python-version }}
117 changes: 115 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,115 @@
.idea*
*__pycache__*
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

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

# 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/
.coverage
.coverage.*
.cache
.pytest_cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# dotenv
.env

# virtualenv
.venv
venv/
ENV/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/

# profraw files from LLVM? Unclear exactly what triggers this
# There are reports this comes from LLVM profiling, but also Xcode 9.
*profraw

# In-tree generated files
*/_version.py

# OSX files
**/.DS_Store

# Pycharm
.idea
12 changes: 12 additions & 0 deletions .lgtm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Configure LGTM for this package

extraction:
python: # Configure Python
python_setup: # Configure the setup
version: 3 # Specify Version 3
path_classifiers:
library:
- versioneer.py # Set Versioneer.py to an external "library" (3rd party code)
- devtools/*
generated:
- flamel/_version.py
25 changes: 25 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
.. -*- coding: utf-8 -*-

===================
Authors of flamel
===================

flamel is a command line interface to alchemlyb. It was started by
Dominik Wille @harlor as a replacement for the alchemical-analysis.py
script.


Chronological list of authors
-----------------------------

2018
- Dominik Wille (@harlor)

2020
- Henrik Jaeger (@hejamu)
- Alexander Schlaich (@schlaicha)

2022
- Zhiyi Wu (@xiki-tempula)
- Oliver Beckstein (@orbeckst)

62 changes: 62 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8 -*-
====================
flamel CHANGELOG
=====================

The rules for this file:
* entries are sorted newest-first.
* summarize sets of changes - don't reproduce every git log comment here.
* don't ever delete anything.
* keep the format consistent (79 char width, ISO 8601 date format
YYYY-MM-DD) and do not use tabs but use spaces for formatting
* accompany each entry with github issue/PR number (Issue #xyz)
* release numbers follow "Semantic Versioning" https://semver.org

------------------------------------------------------------------------------

2022-xx-xx xiki-tempula, orbeckst

* 0.3.0

Complete rewrite of the package, it is generally considered
incompatible with previous releases. See Discussion #12
https://github.com/alchemistry/flamel/discussions/12 for background.

Changes

- Removed plugin-based system and changed into a thin CLI to access
alchemlyb.workflows (see Discussion #12).

Enhancements

- plotting output from ABFE workflow (issue #7)
- pip installable (issue #3)


2021-09-21 hejamu, schlaicha

* 0.2.0

Enhancements

- pickle output


Fixes

- corrected unit handling
- reading of GROMACS input files


2018-11-26 harlor

* 0.1.0

First release (actual release day: 2022-11-06, using @harlor's
original code dating back to 2018).

Features

- plugin-based system
- currently only Gromacs parser and uncorrelation by dH/dl is supported
- reproduces TI, BAR, and MBAR results from alchemical-analysis.py
Loading