Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
718 commits
Select commit Hold shift + click to select a range
9960c49
fix(docs): :memo: adding authors' orcid of the paper
SongshGeo Apr 7, 2024
0f824ce
Merge pull request #74 from ABSESpy/dev
SongshGeo Apr 7, 2024
5261051
refactor(tests): :recycle: seperate values getting setting
SongshGeo Apr 8, 2024
c3b74b2
fix(src): :bug: AttributeError when getting value with wrong key
SongshGeo Apr 8, 2024
48efc60
fix(src): :bug: setting values only when it has attribute
SongshGeo Apr 8, 2024
674c13c
fix(src): :bug: fixing default getter setter for ActorsList, Actor, a…
SongshGeo Apr 9, 2024
2290495
fix(docs): :pencil2: correcting installation from source tutorial
SongshGeo Apr 9, 2024
7f3801c
fix(docs): :memo: fixing Mantilla Ibarra name and capitalizing refers
SongshGeo Apr 10, 2024
7165361
docs(docs): :bookmark: update to 0.5.7 version
SongshGeo Apr 10, 2024
cc102ef
docs(docs): :bookmark: update to 0.5.7 version
SongshGeo Apr 10, 2024
1373877
Merge pull request #75 from ABSESpy/dev
SongshGeo Apr 10, 2024
5d71729
feat(src): :sparkles: reporting model's info
SongshGeo Apr 8, 2024
756d200
refactor(src): :recycle: creating agents from geopandas in AgentsCont…
SongshGeo Apr 8, 2024
34e3882
refactor(src): :recycle: Move RasterNature into my implementation
SongshGeo Apr 12, 2024
600cd4e
refactor(src): :recycle: setting layer of a PatchCell is not allowed now
SongshGeo Apr 12, 2024
f5cad75
refactor(src): :recycle: PatchCell not a subclass of mesa_geo.Cell now
SongshGeo Apr 12, 2024
a791cbc
refactor(src): :recycle: tested nature refactoring, using array_cells…
SongshGeo Apr 12, 2024
e1113d5
refactor(src): :recycle: using factory to create and maintain new mod…
SongshGeo Apr 14, 2024
d18c2e2
feat(src): :sparkles: re-projecting when adding a new raster
SongshGeo Apr 14, 2024
a4a6cdd
test(src): :white_check_mark: flipud input data for passing natural g…
SongshGeo Apr 14, 2024
0874208
Fixed random list problem
ekmaniba Apr 17, 2024
3f9c965
refactor(src): :art: improve codes of nature patch, update notebooks …
SongshGeo Apr 17, 2024
2097302
Merge pull request #76 from ekmanib/dev
SongshGeo Apr 17, 2024
293b16c
docs(docs): :memo: update notebooks with cleaner descriptions on Nature
SongshGeo Apr 17, 2024
c0ebbf4
Merge branch 'refactor.nature' into dev
SongshGeo Apr 17, 2024
2334918
chore(project): :bookmark: update to 0.5.8 version
SongshGeo Apr 17, 2024
acf97dd
Merge pull request #77 from ABSESpy/dev
SongshGeo Apr 17, 2024
013f3f5
refactor(project): :truck: Classify files
SongshGeo May 7, 2024
d68797e
feat(src): :sparkles: viz for natural module
SongshGeo May 7, 2024
620bf3a
feat(src): :sparkles: directly random creating agents in nature
SongshGeo May 7, 2024
aa704ef
feat(src): :sparkles: adding histplot and scatter with seaborn
SongshGeo May 8, 2024
21f05bd
fix(src): :bug: using reverted y-axis to fix flipud image
SongshGeo May 8, 2024
ce7c26d
feat(src): :sparkles: viz model dynamic data by .plot() method
SongshGeo May 8, 2024
9c7e9da
fix(tests): :bug: fixing find shop preference problem
SongshGeo May 8, 2024
8219f79
fix(src): :bug: now can passing kwargs to scatter plot
SongshGeo May 8, 2024
9697822
feat(src): :sparkles: repeatly experiment
SongshGeo May 9, 2024
fb9619a
fix(src): :bug: fixing multi-processing with hydra error
SongshGeo May 9, 2024
6ce7eb8
feat(src): :sparkles: adding final reports
SongshGeo May 9, 2024
515c62c
feat(src): :sparkles: now having a correct batch run in fire spread s…
SongshGeo May 10, 2024
f8b7dda
feat(src): :sparkles: now BaseNature can auto call its major layer's …
SongshGeo May 10, 2024
b99803c
feat(src): :sparkles: can call multiple run in jupyter now
SongshGeo May 11, 2024
fb0a247
docs(project): :memo: update docs after adding experiment
SongshGeo May 11, 2024
1f0e69a
fix(project): :bug: refactored datasets into pkg sources, fixed data …
SongshGeo May 11, 2024
be19737
test(tests): :bug: fixed hotelling model find preference tests failed…
SongshGeo May 11, 2024
fd4aca5
fix(src): :art: avoding overrides of arg in `creat_module` method
SongshGeo May 11, 2024
69c6d36
docs(docs): :memo: update notebook documentation
SongshGeo May 11, 2024
130b387
docs(docs): :memo: update to version 0.6.0
SongshGeo May 11, 2024
fa508a5
Merge pull request #78 from ABSESpy/dev
SongshGeo May 11, 2024
44023fd
fix(src): :bug: include __init__ for default config
SongshGeo May 12, 2024
8910a5f
feat(src): :sparkles: added applying mask option when apply a raster
SongshGeo May 12, 2024
046cb67
docs(docs): :bookmark: update change log to version 0.6.1
SongshGeo May 12, 2024
d194367
Merge pull request #79 from ABSESpy/dev
SongshGeo May 12, 2024
e692618
build(project): :arrow_up: upgrade all dependencies, especially mesa-geo
SongshGeo May 12, 2024
650dae3
docs(project): :bookmark: update to version 0.6.2
SongshGeo May 12, 2024
959288a
Merge pull request #80 from ABSESpy/dev
SongshGeo May 12, 2024
788340d
feat(src): :sparkles: now experiment can record model's vars
SongshGeo May 12, 2024
9001d7c
docs(project): :bookmark: update to version 0.6.3
SongshGeo May 12, 2024
549ad3d
Merge pull request #81 from ABSESpy/dev
SongshGeo May 12, 2024
460d975
fix(src): :bug: fixed VizNodeList savefig param
SongshGeo May 12, 2024
5faca58
fix(src): :bug: fixed module_class type incomptible error when "how" …
SongshGeo May 16, 2024
61bdc51
feat(project): :sparkles: logging setting-up and formatting
SongshGeo May 16, 2024
160dc17
feat(src): :sparkles: adding init and main model logs
SongshGeo May 16, 2024
c21ecd2
feat(actors): :sparkles: counting ages of the actors
SongshGeo May 16, 2024
f86c82e
docs(src): :memo: improve format of running model logs
SongshGeo May 16, 2024
e136e6f
feat(project): :sparkles: adding experiment logs
SongshGeo May 16, 2024
7b30128
docs(project): :bookmark: update to version 0.6.4
SongshGeo May 16, 2024
c89db8d
Merge pull request #82 from ABSESpy/dev
SongshGeo May 16, 2024
2f71bd0
build(project): :arrow_down: down grade xarray for compatibility
SongshGeo May 16, 2024
d8a1865
docs(project): :bookmark: 0.6.4.post, downgrade dependencies
SongshGeo May 16, 2024
68799e8
fix(src): :bug: Fixed shape (1, x) natural patch squeezed bug
SongshGeo May 17, 2024
edc2676
fix(random): :bug: solving situation when entities with prob are not …
SongshGeo May 17, 2024
60aab87
docs(project): :bookmark: update to 0.6.5 version. fixed two bugs.
SongshGeo May 17, 2024
937ac4c
Merge pull request #83 from ABSESpy/dev
SongshGeo May 17, 2024
b9bc51f
feat(src): :sparkles: adding time driver instance to cells, too
SongshGeo May 17, 2024
5a9f907
refactor(src): :recycle: improved containers' coding structure and Ge…
SongshGeo May 18, 2024
2a1aa0c
feat(src): :sparkles: now can use a list of unique_ids to create agents
SongshGeo May 18, 2024
b9b303a
feat(src): :sparkles: actors now are points in the world
SongshGeo May 18, 2024
1990798
feat(src): :sparkles: viz agents created by geopandas
SongshGeo May 19, 2024
079d5df
feat(actors): :sparkles: can summarize ActorsList by GeoDataFrame now
SongshGeo May 19, 2024
c0ea273
test(tests): :white_check_mark: tested Patch's transforming points
SongshGeo May 19, 2024
6988d4f
feat(src): :sparkles: create PatchModule from geopandas dataset
SongshGeo May 19, 2024
04e3dd0
feat(src): :sparkles: plotting network of actors
SongshGeo May 19, 2024
d569f9a
feat(src): :sparkles: import actors and their links from networkx Graph
SongshGeo May 19, 2024
1599c40
docs(docs): :memo: update two tutorials and api of containers
SongshGeo May 19, 2024
b6a712d
chore(project): :bookmark: upgrade to 0.6.6 version
SongshGeo May 19, 2024
5120528
Merge pull request #84 from ABSESpy/dev
SongshGeo May 19, 2024
62c0583
fix(src): :bug: The arg `agent_cls` passed to _new_one method now
SongshGeo May 23, 2024
fce9000
fix(src): :bug: now `Path` object is acceptable when using vector dat…
SongshGeo May 24, 2024
3d9d12e
fix(src): :label: update UniqueID types
SongshGeo May 28, 2024
2c40c70
feat(src): :sparkles: Access ds configurations globally
SongshGeo May 28, 2024
470b1e0
fix(src): :rotating_light: fixed future warning when check unique id
SongshGeo May 29, 2024
3dc4c6a
fix(src): :bug: aligned behaves of random.new and random.choice
SongshGeo May 29, 2024
953c4b6
chore(project): :bookmark: update to v0.6.7
SongshGeo May 29, 2024
22eb91c
Merge pull request #85 from ABSESpy/dev
SongshGeo May 29, 2024
52d32f0
feat(random): :sparkles: Random assign a value to actors' list
SongshGeo May 31, 2024
8467a2f
feat(src): :sparkles: Reproject a DataArray by patch
SongshGeo Jun 2, 2024
e38215e
feat(src): :sparkles: now can setup logging configs in yaml
SongshGeo Jun 2, 2024
4daf501
feat(src): :sparkles: setup subsystem class when init an experiment
SongshGeo Jun 2, 2024
6313095
refactor(src): :sparkles: datacollector now can seperate different ag…
SongshGeo Jun 4, 2024
1f6524e
refactor(src): :recycle: refactored final data reporters
SongshGeo Jun 4, 2024
0a925e3
docs(project): :bookmark: update to version 0.6.9
SongshGeo Jun 4, 2024
67dbd9f
Merge pull request #86 from ABSESpy/dev
SongshGeo Jun 4, 2024
aa7cf48
docs(src): :art: improve str repr of dynamic variables
SongshGeo Jun 7, 2024
0c000aa
feat(src): :sparkles: now TimeDriver can access expected time ticks
SongshGeo Jun 7, 2024
556ef8f
style(src): :art: improved format of test funcs
SongshGeo Jun 8, 2024
041d250
refactor(src): :art: refactored logging settings config
SongshGeo Jun 8, 2024
3e9aa71
chore(project): :bookmark: update to v0.6.9
SongshGeo Jun 8, 2024
feeb244
Merge pull request #87 from ABSESpy/dev
SongshGeo Jun 8, 2024
d4e798e
fix(src): :art: when single run in exp, no pbar anymore
SongshGeo Jun 11, 2024
137dd07
docs(project): :memo: Update geodata document with excluded mkdocs co…
SongshGeo Jun 28, 2024
b25dbac
feat(src): :sparkles: Specific current datetime for TimeDriver
SongshGeo Jul 12, 2024
f982b69
docs(docs): :bookmark: update to version 0.6.19 bookmark
SongshGeo Jul 12, 2024
a6bb925
Merge pull request #88 from ABSESpy/dev
SongshGeo Jul 12, 2024
91e0650
fix(docs): :bug: Keep notebook tutorial documents in-update
SongshGeo Oct 11, 2024
7993b42
refactor(actors): :recycle: Improved Get and Set values for agents
SongshGeo Oct 20, 2024
d084a2b
refactor(nature): :recycle: Make nature and patch operations compatib…
SongshGeo Oct 27, 2024
8c7692d
refactor(api): :recycle: Make agent container compatible to the lates…
SongshGeo Oct 28, 2024
0c72605
refactor(api): :recycle: make up-to-date with the latest Mesa
SongshGeo Oct 28, 2024
a7bb553
fix(nature): :bug: Don't use nature proxy anymore because of viz bug
SongshGeo Oct 29, 2024
4679fb9
fix(api): :bug: MainModel parameters now merged in settings with defa…
SongshGeo Oct 29, 2024
dd3d940
feat(nature): :sparkles: Make BaseNature a subclass of GeoSpace
SongshGeo Oct 29, 2024
bead290
refactor(project): :recycle: Complitible to the latest Mesa & Mesa-ge…
SongshGeo Oct 30, 2024
8bb4843
fix(api): :bug: When cell.agents.new to create, check full cell corre…
SongshGeo Nov 4, 2024
3c88dfc
docs(docs): :memo: Update API docs for the mesa 3.0 compatible version
SongshGeo Nov 4, 2024
710c2f0
fix(api): :bug: fixed get value cannot be redirected bug
SongshGeo Nov 4, 2024
9bcb481
perf(api): :zap: Improved container.has() method's performance
SongshGeo Nov 4, 2024
d3ee560
chore(project): :recycle: Compatible with Mesa 3.x version
SongshGeo Nov 8, 2024
ba4bf91
ci(project): :green_heart: Update upload-artifact to v4
SongshGeo Nov 8, 2024
61959fb
Merge pull request #89 from ABSESpy/dev
SongshGeo Nov 8, 2024
e278a3d
refactor(api): :recycle: Using an experiment manager class to maintai…
SongshGeo Nov 17, 2024
4f58bdb
feat(api): :sparkles: Add hook after run models in an experiment
SongshGeo Nov 17, 2024
8dcfd0b
test(api): :white_check_mark: Check experiment refactor pass the test
SongshGeo Nov 17, 2024
7626a55
Merge pull request #90 from ABSESpy/dev
SongshGeo Nov 17, 2024
bbee091
refactor(project): :recycle: Completely compatible to Mesa 3.0 framework
SongshGeo Nov 17, 2024
0df2ce2
Merge pull request #91 from ABSESpy/dev
SongshGeo Nov 17, 2024
de8808c
docs: contributing file had be added
xyuechen Dec 11, 2024
386e25c
docs: contributing file had be modified
xyuechen Dec 12, 2024
0ec2cba
docs: contributing file had be modified and add pytest and poetry bri…
xyuechen Dec 19, 2024
21c600f
Merge pull request #93 from xyuechen/DocsFile
SongshGeo Dec 19, 2024
0de6d51
chore(project): :construction_worker: using ruff instead of pydocstri…
SongshGeo Dec 19, 2024
a179659
refactor(project): :fire: Remove obsidian repo
SongshGeo Dec 19, 2024
22f4372
fix(docs): :memo: Moved contributing guideness to main repo and fixed…
SongshGeo Dec 19, 2024
ef59367
build(project): :arrow_up: Using official supported mesa-geo as source
SongshGeo Feb 3, 2025
53e96c1
ci: :construction_worker: using release-please instead of own workflow
SongshGeo Feb 3, 2025
f0de7d1
Merge pull request #94 from SongshGeoLab/dev
SongshGeo Feb 3, 2025
c358922
refactor(project): :truck: migrate ABSESpy to Shuang's Team organization
SongshGeo Feb 3, 2025
11ac5f3
Merge pull request #96 from SongshGeoLab/dev
SongshGeo Feb 3, 2025
a491ddb
ci(project): :green_heart: Fix ci links in mkdocs nav and include fun…
SongshGeo Feb 3, 2025
0e8bf21
Merge pull request #97 from SongshGeoLab/dev
SongshGeo Feb 3, 2025
63c6a58
fix(project): :green_heart: remove griffle plugin from mkdocs-material
SongshGeo Feb 3, 2025
38e6ddd
Merge pull request #98 from SongshGeoLab/dev
SongshGeo Feb 3, 2025
6d0f0d7
fix: :green_heart: Only generate joss draft on main, using poetry ins…
SongshGeo Feb 3, 2025
1bb5686
Merge pull request #99 from SongshGeoLab/dev
SongshGeo Feb 3, 2025
9649f79
chore(master): release 0.7.1
github-actions[bot] Feb 3, 2025
565b08f
ci: :green_heart: fix gh-page ci
SongshGeo Feb 3, 2025
8186ef3
Merge pull request #95 from SongshGeoLab/release-please--branches--ma…
SongshGeo Feb 3, 2025
ffc0dbf
fix(src): :bug: Parse parameters in correct order now
SongshGeo Feb 3, 2025
4f60e7e
test(docs): :white_check_mark: Using schelling model to test vizualiz…
SongshGeo Feb 6, 2025
76150c4
build(project): :arrow_up: upgrade dependences, mesa-geo 0.9.1 or lat…
SongshGeo Feb 6, 2025
6e3f329
fix(src): :bug: Fix bug in visualizing empty agent sets
SongshGeo Feb 6, 2025
7a468bb
ci(project): :construction_worker: Using poetry to publish pypi in re…
SongshGeo Feb 6, 2025
6ed0465
Merge pull request #100 from SongshGeoLab/dev
SongshGeo Feb 6, 2025
bbc8ea2
chore(master): release 0.7.2
github-actions[bot] Feb 6, 2025
82b19b5
Merge pull request #101 from SongshGeoLab/release-please--branches--m…
SongshGeo Feb 6, 2025
5735ed9
fix: :green_heart: Fix python version update in release please
SongshGeo Feb 6, 2025
45054aa
Merge pull request #102 from SongshGeoLab/dev
SongshGeo Feb 6, 2025
efb824d
chore(master): release 0.7.3
github-actions[bot] Feb 6, 2025
9042217
Merge pull request #103 from SongshGeoLab/release-please--branches--m…
SongshGeo Feb 6, 2025
4c4da17
fix: :green_heart: Fix python version update in release please
SongshGeo Feb 6, 2025
96a877d
Merge pull request #104 from SongshGeoLab/dev
SongshGeo Feb 6, 2025
9159007
chore(master): release 0.7.4
github-actions[bot] Feb 6, 2025
39f2b66
Merge pull request #105 from SongshGeoLab/release-please--branches--m…
SongshGeo Feb 6, 2025
d3cfc3f
refactor(project): :coffin: NOT support the decision feature anymore
SongshGeo Feb 16, 2025
4252fbd
refactor(api): :coffin: remove redundant dead code in TimeDriver and …
SongshGeo Feb 16, 2025
4ff98e0
ci(project): :green_heart: Use mkdocs insider to generate gh-page
SongshGeo Feb 16, 2025
3fa92c3
fix(docs): :memo: Remove docs for decision, deprecated feature
SongshGeo Feb 16, 2025
9d52489
fix(api): :bug: fix draw actors methods
SongshGeo Feb 16, 2025
6947c4d
ci(project): :construction_worker: Only use ruff for linting
SongshGeo Feb 16, 2025
c21c7d7
fix(api): :bug: Fix agent select by time incorrectly in Container
SongshGeo Feb 16, 2025
cfcc5b5
fix(docs): :bug: Fix all the outdated notebook docs
SongshGeo Feb 16, 2025
d9ab921
Merge pull request #106 from SongshGeoLab/dev
SongshGeo Feb 16, 2025
8c795a0
chore(master): release 0.7.5
github-actions[bot] Feb 16, 2025
9ff33cb
chore(project): :bento: Include data assets in the repo
SongshGeo Feb 16, 2025
789f76a
chore(api): :truck: Retrieve and rename customizing marker feature
SongshGeo Feb 16, 2025
8ff682b
Merge pull request #107 from SongshGeoLab/release-please--branches--m…
SongshGeo Feb 16, 2025
f6388fe
test(utils): :white_check_mark: test regex of names of module and class
SongshGeo Feb 23, 2025
c26824f
refactor(core): :recycle: refactor base objects with Protocols
SongshGeo Feb 23, 2025
a41abb5
refactor(core): :recycle: reorganize structure of the core database
SongshGeo Feb 25, 2025
efcd7ff
refactor(core): :recycle: refactored TimeDriver to de-couple time dri…
SongshGeo Feb 26, 2025
fe0c328
refactor(core): :recycle: Core bases passed the test
SongshGeo Mar 2, 2025
07fa73f
refactor(project): :recycle: Refactor for using protocols
SongshGeo Mar 19, 2025
6bcc8d9
chore(dependencies): :arrow_up: Update package versions in poetry.loc…
SongshGeo Oct 15, 2025
007d184
refactor(core): :sparkles: Introduce base classes for model elements,…
SongshGeo Oct 15, 2025
1c3536e
refactor(core): :recycle: Enhance type checking and protocol definitions
SongshGeo Oct 15, 2025
057faec
chore(ci): :wrench: Add coding guidelines and project structure docum…
SongshGeo Oct 15, 2025
727daa0
docs(examples): :memo: Update model documentation and configuration.
SongshGeo Oct 15, 2025
c150d10
feat(logging): :sparkles: Implement unified logging configuration for…
SongshGeo Oct 15, 2025
48d18d6
docs(examples): :memo: Enhance wolf-sheep model documentation and tests
SongshGeo Oct 15, 2025
ca84690
docs(examples): :memo: Enhance Schelling model with detailed document…
SongshGeo Oct 15, 2025
62bbebd
chore(config): :wrench: Update default.yaml for consistent output dir…
SongshGeo Oct 15, 2025
eaa6872
chore: Merge master (v0.7.5) updates into refactor.protocol
SongshGeo Oct 15, 2025
9219720
feat(core): Protocol-based architecture refactoring
SongshGeo Oct 15, 2025
74fdb89
chore: Update .gitignore to include South-China-Livehood-Evolution ex…
SongshGeo Oct 15, 2025
98a7884
docs(docs): :memo: Update documentation and examples for ABSESpy
SongshGeo Oct 15, 2025
1ba3ee3
docs(i18n): :memo: Add multilingual support and enhance documentation…
SongshGeo Oct 15, 2025
c5b3a44
docs: 📚 Add versioning guide for ABSESpy documentation
SongshGeo Oct 15, 2025
6f9b6d6
docs: 📚 Update tutorials and documentation for improved clarity and f…
SongshGeo Oct 15, 2025
348ce9e
chore: Update .gitignore to include new example directory for water q…
SongshGeo Oct 16, 2025
8294e9c
docs: 📚 Update materials documentation for clarity and accuracy
SongshGeo Oct 16, 2025
9a92be2
chore: Update GitHub Actions workflow for documentation deployment
SongshGeo Oct 16, 2025
e83f5fb
chore: Refactor and enhance project structure and documentation
SongshGeo Oct 16, 2025
a88442a
fix(core): :bug: Add datasets property to BaseModelElement for improv…
SongshGeo Oct 17, 2025
3b0a728
docs(api): :memo: Enhance type checking and documentation in actor mo…
SongshGeo Oct 17, 2025
7441dc2
chore: Add interrogate for docstring coverage and update configuration
SongshGeo Oct 17, 2025
f9d225c
fix(sequences): Fix attribute access in better() method
SongshGeo Oct 17, 2025
de0beac
fix(sequences): :bug: Re-include better() method to handle None thres…
SongshGeo Oct 17, 2025
2274508
refactor(compatibility): :recycle: Enhance backward compatibility for…
SongshGeo Oct 20, 2025
1ff541c
fix(random): :bug: Enhance ListRandom functionality with ActorsList s…
SongshGeo Oct 20, 2025
d16f9cf
chore(ci): :green_heart: Update contribution guidelines and Makefile …
SongshGeo Oct 20, 2025
f5b73c8
fix(refactor): :recycle: Ensure backward compatibility in exp paramet…
SongshGeo Oct 20, 2025
1622d3b
chore(ci): :green_heart: Enhance GitHub Actions workflow for mkdocs-m…
SongshGeo Oct 20, 2025
63a51f0
chore(ci): :green_heart: Refine GitHub Actions workflow for mkdocs-ma…
SongshGeo Oct 20, 2025
271617b
fix(compatibility): :bug: Ensure backward compatibility for raster an…
SongshGeo Oct 20, 2025
696caf7
chore(dependencies): :refactor: Transition from Poetry to uv for depe…
SongshGeo Oct 20, 2025
f7527c1
chore(dependencies): :recycle: Transition project configuration from …
SongshGeo Oct 20, 2025
49f774d
chore(tox): :recycle: Update tox configuration to remove extras and s…
SongshGeo Oct 20, 2025
7efb27c
chore(configuration): :recycle: Update project configuration for impr…
SongshGeo Oct 20, 2025
fa36c68
chore(ci): :recycle: Update GitHub Actions workflow branches for testing
SongshGeo Oct 20, 2025
deabab0
chore(ci): :recycle: Enhance GitHub Actions workflow with concurrency…
SongshGeo Oct 20, 2025
12534d8
feat(core): Protocol-based architecture refactoring
SongshGeo Oct 15, 2025
2f1089f
fix(sequences): Fix attribute access in better() method
SongshGeo Oct 17, 2025
7a2c76b
test(tests): :white_check_mark: Enhance testing framework with layere…
SongshGeo Oct 25, 2025
62a9cdd
docs(docs): :memo: Enhance UML documentation and integrate Mermaid di…
SongshGeo Oct 27, 2025
1c66edb
feat(patch): :sparkles: Implement __getitem__ method for PatchModule …
SongshGeo Oct 27, 2025
1bb7d11
test(examples): :white_check_mark: Add comprehensive tests for visual…
SongshGeo Oct 27, 2025
e3b040f
chore(logging): :recycle: Configure loguru to prevent automatic handl…
SongshGeo Oct 27, 2025
11e63b2
feat(actor, patch): :sparkles: Add move_to method in Actor and count_…
SongshGeo Oct 27, 2025
1fa3e0c
feat(examples): :white_check_mark: Introduce configuration file and e…
SongshGeo Oct 27, 2025
d1fed62
feat(examples): :sparkles: Remove outdated agent and analysis files, …
SongshGeo Oct 28, 2025
5bb1f8b
chore(tox): :wrench: Update tox configuration to skip missing interpr…
SongshGeo Oct 28, 2025
cacf3d0
feat(agents, space): :sparkles: Enhance agent and cell functionality …
SongshGeo Oct 28, 2025
bad83ac
feat(actor): :sparkles: Add evaluate method to Actor for scoring cand…
SongshGeo Oct 28, 2025
316c972
docs(tutorials, docs): :memo: Expand tutorial content and enhance doc…
SongshGeo Oct 28, 2025
c4d1b68
chore(docs): :memo: Update documentation structure and ignore unneces…
SongshGeo Oct 28, 2025
466465d
chore(docs): :fire: Remove obsolete documentation files and update mk…
SongshGeo Oct 28, 2025
01c57ff
ci(makefile): :wrench: Enhance testing commands and add notebook support
SongshGeo Oct 28, 2025
ac5b8e9
chore(security): remove pyproject.toml from history and restore sanit…
SongshGeo Oct 29, 2025
e733e09
chore(security): remove pyproject.toml from history and restore sanit…
SongshGeo Oct 29, 2025
3c4e11d
chore(dependencies): update mkdocs-material dependency and improve do…
SongshGeo Oct 29, 2025
98ea4e2
merge: prefer dev over origin/master (resolve conflicts with ours)
SongshGeo Oct 29, 2025
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
12 changes: 12 additions & 0 deletions .github/workflows/gh-page.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,22 @@ jobs:
poetry run pip install mkdocs-material
fi
poetry install
# ======================== Convert Notebooks ========================
- name: Convert notebooks to markdown
if: ${{ github.event_name != 'workflow_dispatch' || inputs.dry_run != 'true' }}
run: |
chmod +x scripts/convert_notebooks.sh
if [ "${{ github.event_name == 'workflow_dispatch' && inputs.use_uv }}" = "true" ]; then
./scripts/convert_notebooks.sh
else
poetry run jupyter nbconvert --to markdown $(find docs/tutorial -name "*.ipynb" -type f ! -path "*/.ipynb_checkpoints/*") --output-dir docs/tutorial
fi
# ======================== Dry-run build ========================
- name: Build docs only (dry-run)
if: ${{ github.event_name == 'workflow_dispatch' && inputs.dry_run == 'true' }}
run: |
chmod +x scripts/convert_notebooks.sh
./scripts/convert_notebooks.sh
if [ "${{ github.event_name == 'workflow_dispatch' && inputs.use_uv }}" = "true" ]; then
uv run mkdocs build --strict
else
Expand Down
33 changes: 33 additions & 0 deletions .github/workflows/test-notebooks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: test-notebooks

on:
pull_request:
push:
branches: [ dev, master, main ]

jobs:
nbmake:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install uv
run: |
pip install uv

- name: Install deps
run: |
uv sync --dev

- name: Run nbmake
env:
ABSESPY_PROJECT_ROOT: ${{ github.workspace }}
run: |
pytest

197 changes: 196 additions & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,82 @@ concurrency:
cancel-in-progress: true

jobs:
foundation-tests:
name: Foundation Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install uv
uses: astral-sh/setup-uv@v4

- name: Cache uv
uses: actions/cache@v4
with:
path: ~/.cache/uv
key: ${{ runner.os }}-py3.11-uv-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
restore-keys: |
${{ runner.os }}-py3.11-uv-

- name: Install dependencies
run: |
uv sync --dev

- name: Run foundation tests
run: |
uv run pytest tests/foundation/ -v --tb=short --cov=abses --cov-report=xml

- name: Upload foundation test coverage
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: false
file: ./coverage.xml
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

scenario-tests:
name: Scenario Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install uv
uses: astral-sh/setup-uv@v4

- name: Cache uv
uses: actions/cache@v4
with:
path: ~/.cache/uv
key: ${{ runner.os }}-py3.11-uv-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
restore-keys: |
${{ runner.os }}-py3.11-uv-

- name: Install dependencies
run: |
uv sync --dev

- name: Run scenario tests
run: |
uv run pytest tests/scenarios/ -v --tb=short --cov=abses --cov-report=xml

- name: Upload scenario test coverage
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: false
file: ./coverage.xml
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

test:
name: Test Python ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
Expand Down Expand Up @@ -54,6 +130,51 @@ jobs:
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

performance-tests:
name: Performance Benchmark Tests
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install uv
uses: astral-sh/setup-uv@v4

- name: Cache uv
uses: actions/cache@v4
with:
path: ~/.cache/uv
key: ${{ runner.os }}-py3.11-uv-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
restore-keys: |
${{ runner.os }}-py3.11-uv-

- name: Install dependencies
run: |
uv sync --dev

- name: Install pytest-benchmark
run: |
uv add pytest-benchmark

- name: Run performance benchmarks
run: |
uv run pytest tests/performance/ -v --benchmark-only --benchmark-save=baseline

- name: Compare with baseline
run: |
uv run pytest tests/performance/ -v --benchmark-compare=baseline --benchmark-compare-fail=mean:20%

- name: Upload benchmark results
uses: actions/upload-artifact@v4
with:
name: benchmark-results
path: .benchmarks/

lint:
name: Lint and Type Check
runs-on: ubuntu-latest
Expand All @@ -80,20 +201,94 @@ jobs:
run: |
uv run mypy abses/

integration-tests:
name: Integration Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install uv
uses: astral-sh/setup-uv@v4

- name: Cache uv
uses: actions/cache@v4
with:
path: ~/.cache/uv
key: ${{ runner.os }}-py3.11-uv-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
restore-keys: |
${{ runner.os }}-py3.11-uv-

- name: Install dependencies
run: |
uv sync --dev

- name: Run integration tests
run: |
uv run pytest tests/integration/ -v --tb=short

regression-tests:
name: Regression Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install uv
uses: astral-sh/setup-uv@v4

- name: Cache uv
uses: actions/cache@v4
with:
path: ~/.cache/uv
key: ${{ runner.os }}-py3.11-uv-${{ hashFiles('**/pyproject.toml', '**/uv.lock') }}
restore-keys: |
${{ runner.os }}-py3.11-uv-

- name: Install dependencies
run: |
uv sync --dev

- name: Run regression tests
run: |
uv run pytest tests/regression/ -v --tb=short

- name: Run backward compatibility tests
run: |
uv run pytest tests/test_backward_compatibility.py -v --tb=short

test-matrix-summary:
name: Test Matrix Summary
runs-on: ubuntu-latest
needs: [test, lint]
needs: [foundation-tests, test, lint, scenario-tests]
if: always()
steps:
- name: Check test results
run: |
if [ "${{ needs.foundation-tests.result }}" != "success" ]; then
echo "❌ Foundation tests failed"
exit 1
fi
if [ "${{ needs.test.result }}" != "success" ]; then
echo "❌ Tests failed on one or more Python versions"
exit 1
fi
if [ "${{ needs.lint.result }}" != "success" ]; then
echo "⚠️ Linting or type checking issues detected (continuing)"
fi
if [ "${{ needs.scenario-tests.result }}" != "success" ]; then
echo "❌ Scenario tests failed"
exit 1
fi
echo "✅ All tests passed across Python 3.11, 3.12, and 3.13!"
echo "✅ Foundation tests passed!"
echo "✅ Scenario tests passed!"

20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Local environment files (do not commit secrets)
.env
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand Down Expand Up @@ -124,6 +126,24 @@ venv.bak/
# mkdocs documentation
/site

# Generated markdown from notebooks (regenerate with: ./scripts/convert_notebooks.sh)
# Only track non-converted markdown files (manually written guides)
!docs/tutorial/tutorial.md
!docs/tutorial/tutorial.zh.md
!docs/tutorial/tutorial_guide_from_*.md

# Ignore all converted .md files (auto-generated from .ipynb)
docs/tutorial/beginner/*.md
docs/tutorial/intermediate/*.md
docs/tutorial/advanced/*.md
docs/tutorial/completing/*.md

# Generated image/asset directories (_files folders are regenerated during build)
# Note: These are kept locally for mkdocs serve, but not committed
docs/tutorial/**/*_files/
docs/tutorial/**/*.checkpoint.ipynb
docs/tutorial/advanced/.ipynb_checkpoints/

# mypy
.mypy_cache/
.dmypy.json
Expand Down
61 changes: 0 additions & 61 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,5 @@
# Changelog

## [0.8.5](https://github.com/SongshGeoLab/ABSESpy/compare/v0.8.4...v0.8.5) (2025-10-20)


### Bug Fixes

* **compatibility:** :bug: Ensure backward compatibility for raster and vector data application ([ae24d81](https://github.com/SongshGeoLab/ABSESpy/commit/ae24d819a98b9b7930f02f9ae509f861679dd7b7))

## [0.8.4](https://github.com/SongshGeoLab/ABSESpy/compare/v0.8.3...v0.8.4) (2025-10-20)


### Bug Fixes

* **refactor:** :recycle: Ensure backward compatibility in exp parameters setting ([ea4e52a](https://github.com/SongshGeoLab/ABSESpy/commit/ea4e52a76e7238491ad9fefb9b6f83101b0cf9ea))

## [0.8.3](https://github.com/SongshGeoLab/ABSESpy/compare/v0.8.2...v0.8.3) (2025-10-20)


### Bug Fixes

* **random:** :bug: Enhance ListRandom functionality with ActorsList support ([f790b7c](https://github.com/SongshGeoLab/ABSESpy/commit/f790b7c24695bd96f044f9f07bef615b87968f68))
* **sequences:** :bug: Re-include better() method to handle None threshold ([104b104](https://github.com/SongshGeoLab/ABSESpy/commit/104b104a51dc25c647f973b4331b09847da04f9f))

## [0.8.2](https://github.com/SongshGeoLab/ABSESpy/compare/v0.8.1...v0.8.2) (2025-10-17)


### Bug Fixes

* **sequences:** Fix attribute access in better() method ([9b3de51](https://github.com/SongshGeoLab/ABSESpy/commit/9b3de51c82594d444ce2eab33fb466cd2b85ddfb))


### Documentation

* **api:** :memo: Enhance type checking and documentation in actor module ([aafa7d3](https://github.com/SongshGeoLab/ABSESpy/commit/aafa7d36f3075d28271f399e6242178342781d07))

## [0.8.1](https://github.com/SongshGeoLab/ABSESpy/compare/v0.8.0...v0.8.1) (2025-10-17)


### Bug Fixes

* **core:** :bug: Add datasets property to BaseModelElement for improved data access ([3cd5797](https://github.com/SongshGeoLab/ABSESpy/commit/3cd57976946c5cd43f833f3374277b38d296aeec))

## [0.8.0](https://github.com/SongshGeoLab/ABSESpy/compare/v0.7.5...v0.8.0) (2025-10-16)


### Features

* **core:** Protocol-based architecture refactoring ([e424cae](https://github.com/SongshGeoLab/ABSESpy/commit/e424cae00207149e34757bc33ee986a36740662d))
* **logging:** :sparkles: Implement unified logging configuration for ABSESpy ([0453646](https://github.com/SongshGeoLab/ABSESpy/commit/045364635829b98772d8e12f6160c62f706cb75c))


### Documentation

* 📚 Add versioning guide for ABSESpy documentation ([b1391bf](https://github.com/SongshGeoLab/ABSESpy/commit/b1391bf009835a50a162e7f9132d3fe7939dede9))
* 📚 Update materials documentation for clarity and accuracy ([0cbe0c8](https://github.com/SongshGeoLab/ABSESpy/commit/0cbe0c8c1e1cbb3ed4d87cd38cf30b7d11a1d988))
* 📚 Update tutorials and documentation for improved clarity and functionality ([55f80b4](https://github.com/SongshGeoLab/ABSESpy/commit/55f80b4870325ce8b34cd6e0485d44ddfcbc651a))
* **docs:** :memo: Update documentation and examples for ABSESpy ([c0089fe](https://github.com/SongshGeoLab/ABSESpy/commit/c0089fe6ad6c8224895b8c5140dbf3941375cf10))
* **examples:** :memo: Enhance Schelling model with detailed documentation and tests ([33e7e00](https://github.com/SongshGeoLab/ABSESpy/commit/33e7e008dad9d2adfd99575b90e1b4e3a12242ca))
* **examples:** :memo: Enhance wolf-sheep model documentation and tests ([fdf8f11](https://github.com/SongshGeoLab/ABSESpy/commit/fdf8f11408608bd1c96c68c4618376e701455255))
* **examples:** :memo: Update model documentation and configuration. ([7a11b25](https://github.com/SongshGeoLab/ABSESpy/commit/7a11b258fdc53ec33ba8056f5bc352cf11593c49))
* **i18n:** :memo: Add multilingual support and enhance documentation for ABSESpy ([83640ee](https://github.com/SongshGeoLab/ABSESpy/commit/83640ee251eb9b984669adb5cb5e6edcc529cf6c))

## [0.7.5](https://github.com/SongshGeoLab/ABSESpy/compare/v0.7.4...v0.7.5) (2025-02-16)


Expand Down
Loading
Loading