Skip to content

Commit

Permalink
A new start
Browse files Browse the repository at this point in the history
  • Loading branch information
jeandut committed Nov 28, 2023
0 parents commit f636cdd
Show file tree
Hide file tree
Showing 126 changed files with 13,731 additions and 0 deletions.
14 changes: 14 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[flake8]
max-line-length = 88
ignore = D105, E731, W503, F821, E203
docstring-convention = numpy
per-file-ignores = __init__.py:F401
exclude =
.git
.github
.dvc
__pycache__
.venv
.mypy_cache
.pytest_cache
conf.py
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @jeandut @mandreux-owkin @qklopfenstein-owkin
29 changes: 29 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: Bug report
about: Create a report to help improve the code
title: "[BUG] "
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Provide snippets of code and steps on how to reproduce the behavior.
Please also specify the version you are using.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Python version
- Code version [e.g. 0.02 or commit hash]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
Empty file added .github/workflows/.gitkeep
Empty file.
34 changes: 34 additions & 0 deletions .github/workflows/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!--
Thanks for contributing a pull request!
This template is designed to help save time for reviewers and yourself.
1. If your PR is not ready for review yet, please do not hesitate to publish it
as a draft to run the CI.
2. You can prefix the title of the PR with an acronym that indicates the
type of PR, e.g. CI if related to the CI, DOC for the documentation,
FIX if there is a bug fix, FEAT if a new feature is added, EXP if a new
experiment is added.
-->

#### Reference Issue or PRs
<!--
If this PR is related to an existing issue or PR please reference it, eg:
Fixes #1234.
You can use github keywords as described:
https://github.com/blog/1506-closing-issues-via-pull-requests
-->


#### What does your PR implement? Please be specific




#### Checklist

Have you:
- [ ] Added unit tests under `tests/` (if you modified the `fedeca` folder)?
- [ ] Added docstrings for all functions?
- [ ] Added instructions on how to run your experimental file, and the
expected results (e.g. in a README or in the file itself)?
44 changes: 44 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: build_docs

# Controls when the workflow will run
on:
push:
branches:
- 'main'
pull_request:
branches:
- 'main'

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build_docs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python: ["3.9"]
# python: ["3.9", "3.10", "3.11"] # TODO: expand to other pythons
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
env:
GIT_TOKEN: ${{ secrets.GIT_TOKEN }}
GIT_USERNAME: ${{ secrets.GIT_USERNAME }}
run: |
python -m pip install --upgrade pip
pip install -e ".[all_extra]"
- name: Compile docs
run: |
cd docs
make clean html
- name: Publish docs to gh-pages
uses: peaceiris/actions-gh-pages@v3
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
with:
publish_branch: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/build/html/
force_orphan: true
29 changes: 29 additions & 0 deletions .github/workflows/flake8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: linter

on:
push:
branches:
- 'main'
pull_request:
branches:
- 'main'

jobs:
lint:
name: Lint code base
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Setup Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9

- name: Lint with flake
run: |
pip install flake8
pip install flake8-docstrings
flake8 fedeca/ --max-line-length=88 --append-config .flake8
48 changes: 48 additions & 0 deletions .github/workflows/pr_validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: pr-validation

# Controls when the workflow will run
on:
push:
branches:
- main
pull_request:
paths-ignore:
- 'experiments/**' # if only the exps are modified, no need to run it
- 'docs/**' # if only the docs are modified, no need to run it
schedule:
# Every monday at 3h30 UTC
- cron: '30 3 * * 1'

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
run_tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python: ["3.9"]
# python: ["3.9", "3.10", "3.11"] # TODO: expand to other pythons
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
env:
GIT_TOKEN: ${{ secrets.GIT_TOKEN }}
GIT_USERNAME: ${{ secrets.GIT_USERNAME }}
run: |
python -m pip install --upgrade pip
pip install -e ".[all_extra]"
- name: Testing with pytest
run: |
coverage run -m pytest -v fedeca
- name: Generate code coverage report
run: |
coverage html --omit="*/local-worker/*"
- name: Upload coverage artifacts
uses: actions/upload-artifact@v3
with:
name: test-coverage-report
path: htmlcov/
retention-days: 20
141 changes: 141 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
tmp/
local-worker/

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
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/

# 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
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.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

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

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.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/

# other files
.DS_Store

# substra
temp/

# fedeca
tokens/
iptw_experiment/
3 changes: 3 additions & 0 deletions .isort.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[settings]
profile = black
skip=__init__.py
Loading

0 comments on commit f636cdd

Please sign in to comment.