This release is a pre-release and may not be stable for production use.
Dynamic sitemap
The simple sitemap generator for Python projects.
Installation
- using pip
pip install dynamic-sitemap
Usage
Static
from datetime import datetime
from dynamic_sitemap import SimpleSitemap, ChangeFreq
urls = [
'/',
{'loc': '/contacts', 'changefreq': ChangeFreq.NEVER.value},
{'loc': '/about', 'priority': 0.9, 'lastmod': datetime.now().isoformat()},
]
sitemap = SimpleSitemap('https://mysite.com', urls)
# or sitemap.render()
sitemap.write('static/sitemap.xml')
Dynamic
Only FlaskSitemap is implemented yet, so there is an example:
from dynamic_sitemap import FlaskSitemap
from flask import Flask
app = Flask(__name__)
sitemap = FlaskSitemap(app, 'https://mysite.com')
sitemap.build()
Then run your server and visit http://mysite.com/sitemap.xml.
The basic example with some Models:
from dynamic_sitemap import ChangeFreq, FlaskSitemap
from flask import Flask
from models import Post, Tag
app = Flask(__name__)
sitemap = FlaskSitemap(app, 'https://mysite.com', orm='sqlalchemy')
sitemap.config.TIMEZONE = 'Europe/Moscow'
sitemap.ignore('/edit', '/upload')
sitemap.add_items(
'/contacts',
{'loc': '/faq', 'changefreq': ChangeFreq.MONTHLY.value, 'priority': 0.4},
)
sitemap.add_rule('/blog', Post, loc_from='slug', priority=1.0)
sitemap.add_rule('/blog/tag', Tag, loc_from='id', changefreq='daily')
sitemap.build()
Also you can set configurations from your class (and it's preferred):
from dynamic_sitemap import ChangeFreq, FlaskSitemap
from flask import Flask
from models import Product
class Config:
FILENAME = 'static/sitemap.xml'
IGNORED = {'/admin', '/back-office', '/other-pages'}
ALTER_PRIORITY = 0.1
app = Flask(__name__)
sitemap = FlaskSitemap(app, 'https://myshop.org', config=Config)
sitemap.add_items(
'/contacts',
{'loc': '/about', 'changefreq': ChangeFreq.MONTHLY.value, 'priority': 0.4},
)
sitemap.add_rule('/goods', Product, loc_from='id', lastmod_from='updated')
sitemap.build()
Not supported yet:
- urls with more than 1 converter, such as
/page/<int:user_id>/<str:slug>
Check out the Changelog.
Contributing
Feel free to suggest any improvements :)
Development
Fork this repository, clone it and install dependencies:
pip install -r requirements/all.txt
Checkout to a new branch, add your feature and some tests, then try:
make precommit
If the result is ok, create a pull request to "dev" branch of this repo with a detailed description.
Done!
Metadata
Release files for dynamic-sitemap 1.0.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dynamic-sitemap-1.0.0a1.tar.gz | 11.6 kB | Without provenance | Details for dynamic-sitemap-1.0.0a1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dynamic_sitemap-1.0.0a1-py3-none-any.whl | Python 3 | none | any | Details for dynamic_sitemap-1.0.0a1-py3-none-any.whl |
Total release size: 27.3 kB
Release files / dynamic-sitemap-1.0.0a1.tar.gz
| Download URL | dynamic-sitemap-1.0.0a1.tar.gz |
|---|---|
| Size | 11.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1c5a2135c12abd996ac7c783a652b41da505b0829ae38385959519b142e86c73
|
|
BLAKE2b-256 checksum How to use checksums |
8fa9eafd84da5cebfe879c9a8878b89cc373aa6cbd582f009dd8b78e5bc8e0fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.5.0 importlib_metadata/4.2.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.10
|
Release files / dynamic_sitemap-1.0.0a1-py3-none-any.whl
| Download URL | dynamic_sitemap-1.0.0a1-py3-none-any.whl |
|---|---|
| Size | 15.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eefab86b43d8afd005cd11089a338a380555a6913c011fe2a704670664724949
|
|
BLAKE2b-256 checksum How to use checksums |
904cc4616afd78d2c8c320b94f6a3cdc117411940528d24257b5eb90d774abbe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.5.0 importlib_metadata/4.2.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.10
|
Security for dynamic-sitemap 1.0.0a1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.