-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci: bring configs up to date, switch to pyproject.toml
- Loading branch information
Showing
11 changed files
with
193 additions
and
112 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# this is a hack to monkey patch pytest so it handles tests inside namespace packages without __init__.py properly | ||
# without it, pytest can't discover the package root for some reason | ||
# also see https://github.com/karlicoss/pytest_namespace_pkgs for more | ||
|
||
import pathlib | ||
from typing import Optional | ||
|
||
import _pytest.main | ||
import _pytest.pathlib | ||
|
||
# we consider all dirs in repo/ to be namespace packages | ||
root_dir = pathlib.Path(__file__).absolute().parent.resolve() / 'src' | ||
assert root_dir.exists(), root_dir | ||
|
||
# TODO assert it contains package name?? maybe get it via setuptools.. | ||
|
||
namespace_pkg_dirs = [str(d) for d in root_dir.iterdir() if d.is_dir()] | ||
|
||
# resolve_package_path is called from _pytest.pathlib.import_path | ||
# takes a full abs path to the test file and needs to return the path to the 'root' package on the filesystem | ||
resolve_pkg_path_orig = _pytest.pathlib.resolve_package_path | ||
def resolve_package_path(path: pathlib.Path) -> Optional[pathlib.Path]: | ||
result = path # search from the test file upwards | ||
for parent in result.parents: | ||
if str(parent) in namespace_pkg_dirs: | ||
return parent | ||
raise RuntimeError("Couldn't determine path for ", path) | ||
_pytest.pathlib.resolve_package_path = resolve_package_path | ||
|
||
|
||
# without patching, the orig function returns just a package name for some reason | ||
# (I think it's used as a sort of fallback) | ||
# so we need to point it at the absolute path properly | ||
# not sure what are the consequences.. maybe it wouldn't be able to run against installed packages? not sure.. | ||
search_pypath_orig = _pytest.main.search_pypath | ||
def search_pypath(module_name: str) -> str: | ||
return str(root_dir) | ||
_pytest.main.search_pypath = search_pypath |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# see https://github.com/karlicoss/pymplate for up-to-date reference | ||
[project] | ||
dynamic = ["version"] # version is managed by setuptools_scm | ||
name = "pinbexport" | ||
dependencies = [ | ||
] | ||
# TODO maybe split out DAL deps and export deps? might be nice | ||
|
||
## these need to be set if you're planning to upload to pypi | ||
# description = "TODO" | ||
# license = {file = "LICENSE"} | ||
# authors = [ | ||
# {name = "Dima Gerasimov (@karlicoss)", email = "karlicoss@gmail.com"}, | ||
# ] | ||
# maintainers = [ | ||
# {name = "Dima Gerasimov (@karlicoss)", email = "karlicoss@gmail.com"}, | ||
# ] | ||
# | ||
# [project.urls] | ||
# Homepage = "https://github.com/karlicoss/pymplate" | ||
## | ||
|
||
[project.optional-dependencies] | ||
optional = [ | ||
"orjson", | ||
"colorlog", | ||
"ijson", # faster iterative json processing | ||
] | ||
testing = [ | ||
"pytest", | ||
"ruff", | ||
"mypy", | ||
"lxml", # for mypy html coverage | ||
] | ||
|
||
|
||
[build-system] | ||
requires = ["setuptools", "setuptools-scm"] | ||
build-backend = "setuptools.build_meta" | ||
|
||
[tool.setuptools_scm] | ||
version_scheme = "python-simplified-semver" | ||
local_scheme = "dirty-tag" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
ignore = [ | ||
### too opinionated style checks | ||
"E501", # too long lines | ||
"E702", # Multiple statements on one line (semicolon) | ||
"E731", # assigning lambda instead of using def | ||
"E741", # Ambiguous variable name: `l` | ||
"E742", # Ambiguous class name: `O | ||
"E401", # Multiple imports on one line | ||
"F403", # import *` used; unable to detect undefined names | ||
### | ||
|
||
### | ||
"E722", # Do not use bare `except` ## Sometimes it's useful for defensive imports and that sort of thing.. | ||
"F811", # Redefinition of unused # this gets in the way of pytest fixtures (e.g. in cachew) | ||
|
||
## might be nice .. but later and I don't wanna make it strict | ||
"E402", # Module level import not at top of file | ||
|
||
### maybe consider these soon | ||
# sometimes it's useful to give a variable a name even if we don't use it as a documentation | ||
# on the other hand, often is a sign of error | ||
"F841", # Local variable `count` is assigned to but never used | ||
"F401", # imported but unused | ||
### | ||
] | ||
|
||
exclude = [ | ||
"src/hypexport/Hypothesis", | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.