driven-pile 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- driven_pile-0.1.0/.github/workflows/ci.yml +32 -0
- driven_pile-0.1.0/.github/workflows/docs.yml +103 -0
- driven_pile-0.1.0/.github/workflows/publish.yml +30 -0
- driven_pile-0.1.0/.gitignore +26 -0
- driven_pile-0.1.0/CLAUDE.md +51 -0
- driven_pile-0.1.0/LICENSE +674 -0
- driven_pile-0.1.0/PKG-INFO +79 -0
- driven_pile-0.1.0/README.md +57 -0
- driven_pile-0.1.0/docs/examples/data/B-20_fines.csv +107 -0
- driven_pile-0.1.0/docs/examples/data/B-20_log.csv +75 -0
- driven_pile-0.1.0/docs/examples/walkthrough.qmd +220 -0
- driven_pile-0.1.0/docs/great-docs.yml +862 -0
- driven_pile-0.1.0/docs/user_guide/installation.qmd +32 -0
- driven_pile-0.1.0/docs/user_guide/method.qmd +307 -0
- driven_pile-0.1.0/docs/user_guide/parameters.qmd +80 -0
- driven_pile-0.1.0/docs/user_guide/quickstart.qmd +166 -0
- driven_pile-0.1.0/llm/api_design.md +370 -0
- driven_pile-0.1.0/llm/no_paper_citation.md +24 -0
- driven_pile-0.1.0/llm/status.md +124 -0
- driven_pile-0.1.0/pyproject.toml +48 -0
- driven_pile-0.1.0/src/driven_pile/__init__.py +28 -0
- driven_pile-0.1.0/src/driven_pile/analysis.py +43 -0
- driven_pile-0.1.0/src/driven_pile/bearing.py +148 -0
- driven_pile-0.1.0/src/driven_pile/capacity.py +73 -0
- driven_pile-0.1.0/src/driven_pile/constants.py +24 -0
- driven_pile-0.1.0/src/driven_pile/formulas.py +61 -0
- driven_pile-0.1.0/src/driven_pile/inputs.py +373 -0
- driven_pile-0.1.0/src/driven_pile/liquefaction.py +208 -0
- driven_pile-0.1.0/src/driven_pile/march.py +289 -0
- driven_pile-0.1.0/src/driven_pile/montecarlo.py +108 -0
- driven_pile-0.1.0/src/driven_pile/options.py +123 -0
- driven_pile-0.1.0/src/driven_pile/plots.py +83 -0
- driven_pile-0.1.0/src/driven_pile/preprocess.py +219 -0
- driven_pile-0.1.0/src/driven_pile/results.py +262 -0
- driven_pile-0.1.0/src/driven_pile/shaft.py +166 -0
- driven_pile-0.1.0/src/driven_pile/spt.py +64 -0
- driven_pile-0.1.0/src/driven_pile/top_segment.py +42 -0
- driven_pile-0.1.0/tests/conftest.py +40 -0
- driven_pile-0.1.0/tests/fixtures/A-11.json +1 -0
- driven_pile-0.1.0/tests/fixtures/B-1.5.json +1 -0
- driven_pile-0.1.0/tests/fixtures/B-20.json +1 -0
- driven_pile-0.1.0/tests/fixtures/B-25.5.json +1 -0
- driven_pile-0.1.0/tests/fixtures/B-29.5.json +1 -0
- driven_pile-0.1.0/tests/fixtures/B-47.5.json +1 -0
- driven_pile-0.1.0/tests/fixtures/C-37.json +1 -0
- driven_pile-0.1.0/tests/fixtures/D-41.json +1 -0
- driven_pile-0.1.0/tests/fixtures/DD-15.json +1 -0
- driven_pile-0.1.0/tests/fixtures/DD-21.json +1 -0
- driven_pile-0.1.0/tests/fixtures/E-44.json +1 -0
- driven_pile-0.1.0/tests/fixtures/F-67.6.json +1 -0
- driven_pile-0.1.0/tests/fixtures/J-44.json +1 -0
- driven_pile-0.1.0/tests/fixtures/L-36.json +1 -0
- driven_pile-0.1.0/tests/fixtures/N-17.json +1 -0
- driven_pile-0.1.0/tests/fixtures/make_fixtures.py +87 -0
- driven_pile-0.1.0/tests/test_equations.py +98 -0
- driven_pile-0.1.0/tests/test_inputs.py +87 -0
- driven_pile-0.1.0/tests/test_pipeline.py +50 -0
- driven_pile-0.1.0/tests/test_regression.py +52 -0
- driven_pile-0.1.0/uv.lock +2171 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: ci
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
matrix:
|
|
13
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
- uses: astral-sh/setup-uv@v5
|
|
17
|
+
with:
|
|
18
|
+
python-version: ${{ matrix.python-version }}
|
|
19
|
+
- run: uv sync --group dev
|
|
20
|
+
- run: uv run ruff check src tests
|
|
21
|
+
- run: uv run pytest -q -m "not slow"
|
|
22
|
+
|
|
23
|
+
slow:
|
|
24
|
+
if: github.event_name == 'pull_request'
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
- uses: astral-sh/setup-uv@v5
|
|
29
|
+
with:
|
|
30
|
+
python-version: "3.13"
|
|
31
|
+
- run: uv sync --group dev
|
|
32
|
+
- run: uv run pytest -q -m slow
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
name: CI Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build-docs:
|
|
11
|
+
name: "Build Docs"
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v6
|
|
15
|
+
with:
|
|
16
|
+
fetch-depth: 0 # Full history for accurate page timestamps
|
|
17
|
+
|
|
18
|
+
- uses: actions/setup-python@v6
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.11"
|
|
21
|
+
|
|
22
|
+
- name: Install package and dependencies
|
|
23
|
+
run: |
|
|
24
|
+
python -m pip install uv
|
|
25
|
+
uv sync --group docs
|
|
26
|
+
|
|
27
|
+
- name: Set up Quarto
|
|
28
|
+
uses: quarto-dev/quarto-actions/setup@v2
|
|
29
|
+
|
|
30
|
+
- name: Install STIX Two Text for the example figures
|
|
31
|
+
run: |
|
|
32
|
+
mkdir -p ~/.local/share/fonts
|
|
33
|
+
for style in Regular Italic Bold BoldItalic; do
|
|
34
|
+
curl -fsSL -o ~/.local/share/fonts/STIXTwoText-$style.otf \
|
|
35
|
+
https://raw.githubusercontent.com/stipub/stixfonts/v2.13/fonts/static_otf/STIXTwoText-$style.otf
|
|
36
|
+
done
|
|
37
|
+
fc-cache -f
|
|
38
|
+
|
|
39
|
+
- name: Build docs
|
|
40
|
+
run: uv run great-docs build
|
|
41
|
+
|
|
42
|
+
- name: Save docs artifact
|
|
43
|
+
uses: actions/upload-artifact@v7
|
|
44
|
+
with:
|
|
45
|
+
name: docs-html
|
|
46
|
+
path: docs/_site
|
|
47
|
+
include-hidden-files: true
|
|
48
|
+
|
|
49
|
+
- name: How to preview this build locally
|
|
50
|
+
if: github.event_name == 'pull_request'
|
|
51
|
+
run: uv run great-docs ci notice --run ${{ github.run_id }} --pr ${{ github.event.number }}
|
|
52
|
+
|
|
53
|
+
- name: Upload build timings
|
|
54
|
+
uses: actions/upload-artifact@v7
|
|
55
|
+
with:
|
|
56
|
+
name: build-timings
|
|
57
|
+
path: docs/_site/build-timings.json
|
|
58
|
+
|
|
59
|
+
publish-docs:
|
|
60
|
+
name: "Publish Docs"
|
|
61
|
+
runs-on: ubuntu-latest
|
|
62
|
+
needs: "build-docs"
|
|
63
|
+
if: github.ref == 'refs/heads/main'
|
|
64
|
+
permissions:
|
|
65
|
+
pages: write
|
|
66
|
+
id-token: write
|
|
67
|
+
environment:
|
|
68
|
+
name: github-pages
|
|
69
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
70
|
+
steps:
|
|
71
|
+
- uses: actions/download-artifact@v7
|
|
72
|
+
with:
|
|
73
|
+
name: docs-html
|
|
74
|
+
path: docs/_site
|
|
75
|
+
|
|
76
|
+
- name: Upload Pages artifact
|
|
77
|
+
uses: actions/upload-pages-artifact@v5
|
|
78
|
+
with:
|
|
79
|
+
path: docs/_site
|
|
80
|
+
include-hidden-files: true
|
|
81
|
+
|
|
82
|
+
- name: Deploy to GitHub Pages
|
|
83
|
+
id: deployment
|
|
84
|
+
uses: actions/deploy-pages@v5
|
|
85
|
+
|
|
86
|
+
preview-docs:
|
|
87
|
+
name: "Preview Docs"
|
|
88
|
+
runs-on: ubuntu-latest
|
|
89
|
+
needs: "build-docs"
|
|
90
|
+
if: github.event_name == 'pull_request'
|
|
91
|
+
permissions:
|
|
92
|
+
pull-requests: write
|
|
93
|
+
steps:
|
|
94
|
+
# Post (and keep updated) a sticky PR comment with the local-preview
|
|
95
|
+
# command, pinned to this run so it reproduces the build under review.
|
|
96
|
+
# Runs the released great-docs via pipx (no install step needed); kept as
|
|
97
|
+
# its own minimal job so the docs build never holds a pull-requests:write
|
|
98
|
+
# token. continue-on-error so fork PRs (read-only token) don't fail the run.
|
|
99
|
+
- name: Post preview instructions to the PR
|
|
100
|
+
continue-on-error: true
|
|
101
|
+
run: pipx run great-docs ci pr-comment --run ${{ github.run_id }} --pr ${{ github.event.number }}
|
|
102
|
+
env:
|
|
103
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
build:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v4
|
|
12
|
+
- uses: astral-sh/setup-uv@v5
|
|
13
|
+
- run: uv build
|
|
14
|
+
- uses: actions/upload-artifact@v4
|
|
15
|
+
with:
|
|
16
|
+
name: dist
|
|
17
|
+
path: dist/
|
|
18
|
+
|
|
19
|
+
publish:
|
|
20
|
+
needs: build
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
environment: pypi
|
|
23
|
+
permissions:
|
|
24
|
+
id-token: write
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/download-artifact@v4
|
|
27
|
+
with:
|
|
28
|
+
name: dist
|
|
29
|
+
path: dist/
|
|
30
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.pyc
|
|
3
|
+
.venv/
|
|
4
|
+
dist/
|
|
5
|
+
build/
|
|
6
|
+
*.egg-info/
|
|
7
|
+
.pytest_cache/
|
|
8
|
+
.ruff_cache/
|
|
9
|
+
.DS_Store
|
|
10
|
+
|
|
11
|
+
# Great Docs build directory (ephemeral, do not commit)
|
|
12
|
+
great-docs/
|
|
13
|
+
|
|
14
|
+
# Great Docs versioned-build artifacts
|
|
15
|
+
_great_docs_build/
|
|
16
|
+
.great-docs-build/
|
|
17
|
+
.great-docs-cache/
|
|
18
|
+
.great-docs/
|
|
19
|
+
|
|
20
|
+
# Great Docs build output
|
|
21
|
+
/docs/_quarto/
|
|
22
|
+
/docs/_site/
|
|
23
|
+
/docs/.cache/
|
|
24
|
+
/.great-docs-build/
|
|
25
|
+
/.great-docs/
|
|
26
|
+
/docs/_freeze/
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Working agreement for driven-pile
|
|
2
|
+
|
|
3
|
+
## What this is
|
|
4
|
+
|
|
5
|
+
A pip-installable Python library that estimates the long-term capacity of a
|
|
6
|
+
driven pile from its driving log by tracking the pore pressure generated by
|
|
7
|
+
hammer blows. It was extracted from the research repository
|
|
8
|
+
`TCE_499_pile-driving` (branch clean-rebuild, tag `paper-freeze-2026-10-23`),
|
|
9
|
+
which stays the home of the data and the soil-classification work. Soil classification is out of scope here.
|
|
10
|
+
|
|
11
|
+
Read llm/no_paper_citation.md before writing any user-facing text,
|
|
12
|
+
llm/api_design.md before changing the public API, and llm/status.md for where
|
|
13
|
+
the work stands.
|
|
14
|
+
|
|
15
|
+
## Rules
|
|
16
|
+
|
|
17
|
+
- Implement only the method as it stands. A model-form change needs a
|
|
18
|
+
published precedent, cited in the function's References section.
|
|
19
|
+
- Never cite Arnold (2027) or its equation numbers in the README, docs,
|
|
20
|
+
docstrings or package metadata (llm/no_paper_citation.md).
|
|
21
|
+
- Never use FHWA table setup factors; the method derives everything from the
|
|
22
|
+
log and the site inputs.
|
|
23
|
+
- Long-term capacity is always shaft plus the end-of-drive toe. Never add a
|
|
24
|
+
toe-setup variant.
|
|
25
|
+
- The deterministic top-segment friction angle is the lowest admissible value
|
|
26
|
+
of the sweep.
|
|
27
|
+
- Do not git commit or push unless Lorne asks. Leave changes in the working
|
|
28
|
+
tree and say what is uncommitted.
|
|
29
|
+
- Keep executing evident next steps; stop only for decisions that are Lorne's
|
|
30
|
+
(model-form choices, scope, anything irreversible) or when blocked.
|
|
31
|
+
|
|
32
|
+
## Code conventions
|
|
33
|
+
|
|
34
|
+
- numpy docstring convention with Parameters, Returns, Notes and References;
|
|
35
|
+
equation-level functions cite the original published source.
|
|
36
|
+
- PEP 8, type hints on public signatures, dataclasses for records, no
|
|
37
|
+
module-level state, no file-system conventions inside the library.
|
|
38
|
+
- Comments describe what the code does. Design rationale and history go in
|
|
39
|
+
docs/, never in source files.
|
|
40
|
+
- Units: feet, kips, ksf, degrees throughout.
|
|
41
|
+
- Results are dataclasses of plain numpy arrays. No pandas dependency.
|
|
42
|
+
matplotlib is an optional extra used only by the plot helpers.
|
|
43
|
+
- Tests: pytest. `uv run pytest -q -m "not slow"` is the fast suite
|
|
44
|
+
(about 15 s); `-m slow` sweeps every benchmark pile's top band (about 2 min).
|
|
45
|
+
`uv run ruff check src tests` must pass.
|
|
46
|
+
|
|
47
|
+
## Reporting
|
|
48
|
+
|
|
49
|
+
- Expand every acronym once per summary.
|
|
50
|
+
- Report results that weaken the method as plainly as results that support it.
|
|
51
|
+
- When verifying a change against the research code, show the comparison.
|