Skip to content

Commit 2aeec3e

Browse files
committed
initial commit
This contains OverlayFS, Trie based memfs, dict based memfs and async version of LocalFileSystem (os.path based).
0 parents  commit 2aeec3e

24 files changed

+2410
-0
lines changed

.cruft.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"template": "https://github.com/iterative/py-template",
3+
"commit": "a697f2f5da9723747e37176cd44a44a6de6de641",
4+
"checkout": null,
5+
"context": {
6+
"cookiecutter": {
7+
"project_name": "morefs",
8+
"package_name": "morefs",
9+
"friendly_name": "morefs",
10+
"author": "Iterative",
11+
"email": "[email protected]",
12+
"github_user": "skshetry",
13+
"version": "0.0.0",
14+
"copyright_year": "2022",
15+
"license": "Apache-2.0",
16+
"short_description": "More FSSpec filesystems",
17+
"development_status": "Development Status :: 4 - Beta",
18+
"_copy_without_render": [
19+
".github/workflows/release.yaml",
20+
".github/workflows/tests.yaml",
21+
".github/workflows/update-template.yaml"
22+
],
23+
"_template": "https://github.com/iterative/py-template"
24+
}
25+
},
26+
"directory": null
27+
}

.github/dependabot.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
version: 2
2+
3+
updates:
4+
- directory: "/"
5+
package-ecosystem: "pip"
6+
schedule:
7+
interval: "weekly"
8+
labels:
9+
- "maintenance"
10+
# Update via cruft
11+
ignore:
12+
- dependency-name: "mkdocs*"
13+
- dependency-name: "pytest*"
14+
- dependency-name: "pylint"
15+
- dependency-name: "mypy"
16+
17+
- directory: "/"
18+
package-ecosystem: "github-actions"
19+
schedule:
20+
interval: "weekly"
21+
labels:
22+
- "maintenance"
23+
# Update via cruft
24+
ignore:
25+
- dependency-name: "actions/checkout"
26+
- dependency-name: "actions/setup-python"
27+
- dependency-name: "pypa/gh-action-pypi-publish"
28+
- dependency-name: "codecov/codecov-action"
29+
- dependency-name: "peter-evans/create-pull-request"

.github/workflows/release.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
workflow_dispatch:
8+
9+
env:
10+
FORCE_COLOR: "1"
11+
12+
jobs:
13+
release:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Check out the repository
17+
uses: actions/checkout@v3
18+
with:
19+
fetch-depth: 0
20+
21+
- name: Set up Python 3.10
22+
uses: actions/setup-python@v4
23+
with:
24+
python-version: '3.10'
25+
26+
- name: Upgrade pip and nox
27+
run: |
28+
pip install --upgrade pip nox
29+
pip --version
30+
nox --version
31+
32+
- name: Build package
33+
run: nox -s build
34+
35+
- name: Upload package
36+
uses: pypa/gh-action-pypi-publish@master
37+
with:
38+
user: __token__
39+
password: ${{ secrets.PYPI_TOKEN }}

.github/workflows/tests.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
pull_request:
6+
workflow_dispatch:
7+
8+
env:
9+
FORCE_COLOR: "1"
10+
11+
concurrency:
12+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
13+
cancel-in-progress: true
14+
15+
jobs:
16+
tests:
17+
timeout-minutes: 10
18+
runs-on: ${{ matrix.os }}
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
os: [ubuntu-20.04, windows-latest, macos-latest]
23+
pyv: ['3.8', '3.9', '3.10']
24+
25+
steps:
26+
- name: Check out the repository
27+
uses: actions/checkout@v3
28+
with:
29+
fetch-depth: 0
30+
31+
- name: Set up Python ${{ matrix.pyv }}
32+
uses: actions/setup-python@v4
33+
with:
34+
python-version: ${{ matrix.pyv }}
35+
36+
- name: Upgrade pip and nox
37+
run: |
38+
python -m pip install --upgrade pip nox
39+
pip --version
40+
nox --version
41+
42+
- name: Lint code and check dependencies
43+
run: nox -s lint safety
44+
45+
- name: Run tests
46+
run: nox -s tests-${{ matrix.pyv }} -- --cov-report=xml
47+
48+
- name: Upload coverage report
49+
uses: codecov/[email protected]
50+
51+
- name: Build package
52+
run: nox -s build
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
name: Update template
3+
4+
on:
5+
schedule:
6+
- cron: '5 1 * * *' # every day at 01:05
7+
8+
workflow_dispatch:
9+
10+
jobs:
11+
update:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v3
15+
- name: Install deps
16+
run: pip install cruft
17+
- name: Update template
18+
id: update
19+
run: |
20+
cruft update -y
21+
echo "::set-output name=changes::$(git diff)"
22+
- name: Create PR
23+
if: ${{ steps.update.outputs.changes != '' }}
24+
uses: peter-evans/create-pull-request@v4
25+
with:
26+
commit-message: update template
27+
title: update template

.gitignore

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
share/python-wheels/
24+
*.egg-info/
25+
.installed.cfg
26+
*.egg
27+
MANIFEST
28+
29+
# PyInstaller
30+
# Usually these files are written by a python script from a template
31+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
32+
*.manifest
33+
*.spec
34+
35+
# Installer logs
36+
pip-log.txt
37+
pip-delete-this-directory.txt
38+
39+
# Unit test / coverage reports
40+
htmlcov/
41+
.tox/
42+
.nox/
43+
.coverage
44+
.coverage.*
45+
.cache
46+
nosetests.xml
47+
coverage.xml
48+
*.cover
49+
*.py,cover
50+
.hypothesis/
51+
.pytest_cache/
52+
cover/
53+
54+
# Translations
55+
*.mo
56+
*.pot
57+
58+
# Django stuff:
59+
*.log
60+
local_settings.py
61+
db.sqlite3
62+
db.sqlite3-journal
63+
64+
# Flask stuff:
65+
instance/
66+
.webassets-cache
67+
68+
# Scrapy stuff:
69+
.scrapy
70+
71+
# Sphinx documentation
72+
docs/_build/
73+
74+
# PyBuilder
75+
.pybuilder/
76+
target/
77+
78+
# Jupyter Notebook
79+
.ipynb_checkpoints
80+
81+
# IPython
82+
profile_default/
83+
ipython_config.py
84+
85+
# pyenv
86+
# For a library or package, you might want to ignore these files since the code is
87+
# intended to run in multiple environments; otherwise, check them in:
88+
# .python-version
89+
90+
# pipenv
91+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
93+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
94+
# install all needed dependencies.
95+
#Pipfile.lock
96+
97+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
98+
__pypackages__/
99+
100+
# Celery stuff
101+
celerybeat-schedule
102+
celerybeat.pid
103+
104+
# SageMath parsed files
105+
*.sage.py
106+
107+
# Environments
108+
.env
109+
.venv
110+
env/
111+
venv/
112+
ENV/
113+
env.bak/
114+
venv.bak/
115+
116+
# Spyder project settings
117+
.spyderproject
118+
.spyproject
119+
120+
# Rope project settings
121+
.ropeproject
122+
123+
# mkdocs documentation
124+
/site
125+
126+
# mypy
127+
.mypy_cache/
128+
.dmypy.json
129+
dmypy.json
130+
131+
# Pyre type checker
132+
.pyre/
133+
134+
# pytype static type analyzer
135+
.pytype/
136+
137+
# Cython debug symbols
138+
cython_debug/

.pre-commit-config.yaml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
default_language_version:
2+
python: python3
3+
repos:
4+
- repo: https://github.com/psf/black
5+
rev: 22.3.0
6+
hooks:
7+
- id: black
8+
- repo: https://github.com/pre-commit/pre-commit-hooks
9+
rev: v4.0.1
10+
hooks:
11+
- id: check-added-large-files
12+
- id: check-case-conflict
13+
- id: check-docstring-first
14+
- id: check-executables-have-shebangs
15+
- id: check-toml
16+
- id: check-merge-conflict
17+
- id: check-yaml
18+
- id: debug-statements
19+
- id: end-of-file-fixer
20+
- id: mixed-line-ending
21+
- id: sort-simple-yaml
22+
- id: trailing-whitespace
23+
- repo: https://github.com/codespell-project/codespell
24+
rev: v2.1.0
25+
hooks:
26+
- id: codespell
27+
args:
28+
- --ignore-words-list
29+
- fo,cachable
30+
- repo: https://github.com/asottile/pyupgrade
31+
rev: v2.31.0
32+
hooks:
33+
- id: pyupgrade
34+
- repo: https://github.com/PyCQA/isort
35+
rev: 5.10.1
36+
hooks:
37+
- id: isort
38+
- repo: https://gitlab.com/pycqa/flake8
39+
rev: 3.9.2
40+
hooks:
41+
- id: flake8
42+
additional_dependencies:
43+
- flake8-bandit
44+
- flake8-broken-line
45+
- flake8-bugbear
46+
- flake8-comprehensions
47+
- flake8-debugger
48+
- flake8-string-format
49+
- bandit<1.7.3

0 commit comments

Comments
 (0)