pax_global_header 0000666 0000000 0000000 00000000064 15146550034 0014515 g ustar 00root root 0000000 0000000 52 comment=ef2e655ed271478e94821f84b9a01125e75e9372
python-polyfactory-3.3.0/ 0000775 0000000 0000000 00000000000 15146550034 0015412 5 ustar 00root root 0000000 0000000 python-polyfactory-3.3.0/.all-contributorsrc 0000664 0000000 0000000 00000032532 15146550034 0021250 0 ustar 00root root 0000000 0000000 {
"files": [
"README.md"
],
"imageSize": 100,
"commit": false,
"commitConvention": "angular",
"contributors": [
{
"login": "Goldziher",
"name": "Na'aman Hirschfeld",
"avatar_url": "https://avatars.githubusercontent.com/u/30733348?v=4",
"profile": "https://github.com/Goldziher",
"contributions": [
"maintenance",
"infra",
"test",
"code",
"doc"
]
},
{
"login": "JacobCoffee",
"name": "Jacob Coffee",
"avatar_url": "https://avatars.githubusercontent.com/u/45884264?v=4",
"profile": "https://scriptr.dev/",
"contributions": [
"maintenance",
"doc",
"test"
]
},
{
"login": "provinzkraut",
"name": "Janek Nouvertné",
"avatar_url": "https://avatars.githubusercontent.com/u/25355197?v=4",
"profile": "https://github.com/provinzkraut",
"contributions": [
"maintenance",
"doc",
"test",
"code"
]
},
{
"login": "peterschutt",
"name": "Peter Schutt",
"avatar_url": "https://avatars.githubusercontent.com/u/20659309?v=4",
"profile": "https://schutt.io",
"contributions": [
"maintenance",
"test",
"code",
"doc"
]
},
{
"login": "mdczaplicki",
"name": "Marek Czaplicki",
"avatar_url": "https://avatars.githubusercontent.com/u/9108586?v=4",
"profile": "https://czaplicki.it/",
"contributions": [
"code",
"test"
]
},
{
"login": "przybylop",
"name": "Piotr Przybyło",
"avatar_url": "https://avatars.githubusercontent.com/u/82805821?v=4",
"profile": "https://github.com/przybylop",
"contributions": [
"code"
]
},
{
"login": "sygutss",
"name": "sygutss",
"avatar_url": "https://avatars.githubusercontent.com/u/48909366?v=4",
"profile": "https://github.com/sygutss",
"contributions": [
"bug",
"code"
]
},
{
"login": "chrisbeardy",
"name": "chrisbeardy",
"avatar_url": "https://avatars.githubusercontent.com/u/20585410?v=4",
"profile": "https://github.com/chrisbeardy",
"contributions": [
"doc"
]
},
{
"login": "guacs",
"name": "guacs",
"avatar_url": "https://avatars.githubusercontent.com/u/126393040?v=4",
"profile": "https://github.com/guacs",
"contributions": [
"code",
"infra",
"doc",
"test",
"maintenance"
]
},
{
"login": "VSHUMILIN97",
"name": "Vadim",
"avatar_url": "https://avatars.githubusercontent.com/u/27234763?v=4",
"profile": "https://github.com/VSHUMILIN97",
"contributions": [
"code"
]
},
{
"login": "Simske",
"name": "Simske",
"avatar_url": "https://avatars.githubusercontent.com/u/2445660?v=4",
"profile": "https://github.com/Simske",
"contributions": [
"code"
]
},
{
"login": "sondrelg",
"name": "Sondre Lillebø Gundersen",
"avatar_url": "https://avatars.githubusercontent.com/u/25310870?v=4",
"profile": "https://github.com/sondrelg",
"contributions": [
"code"
]
},
{
"login": "mciszczon",
"name": "Mateusz Ciszczoń",
"avatar_url": "https://avatars.githubusercontent.com/u/1078369?v=4",
"profile": "https://mciszczon.pl/",
"contributions": [
"code"
]
},
{
"login": "phbernardes",
"name": "Pedro Bernardes",
"avatar_url": "https://avatars.githubusercontent.com/u/18899993?v=4",
"profile": "https://www.linkedin.com/in/pedro-bernardes/",
"contributions": [
"code"
]
},
{
"login": "lindycoder",
"name": "Martin Roy",
"avatar_url": "https://avatars.githubusercontent.com/u/12926519?v=4",
"profile": "https://github.com/lindycoder",
"contributions": [
"code"
]
},
{
"login": "Butch78",
"name": "Matthew Aylward ",
"avatar_url": "https://avatars.githubusercontent.com/u/19205392?v=4",
"profile": "http://matthewtyleraylward.com",
"contributions": [
"code"
]
},
{
"login": "EltonChou",
"name": "Elton H.Y. Chou",
"avatar_url": "https://avatars.githubusercontent.com/u/12560310?v=4",
"profile": "https://github.com/EltonChou",
"contributions": [
"code"
]
},
{
"login": "nguyent",
"name": "Thang",
"avatar_url": "https://avatars.githubusercontent.com/u/576848?v=4",
"profile": "https://github.com/nguyent",
"contributions": [
"code"
]
},
{
"login": "DaanRademaker",
"name": "Daan",
"avatar_url": "https://avatars.githubusercontent.com/u/29598493?v=4",
"profile": "https://github.com/DaanRademaker",
"contributions": [
"code"
]
},
{
"login": "lyz-code",
"name": "Lyz",
"avatar_url": "https://avatars.githubusercontent.com/u/24810987?v=4",
"profile": "https://lyz-code.github.io/blue-book/",
"contributions": [
"code"
]
},
{
"login": "thorin-schiffer",
"name": "Thorin Schiffer",
"avatar_url": "https://avatars.githubusercontent.com/u/3502492?v=4",
"profile": "https://portfolio.schiffer.pro/",
"contributions": [
"code"
]
},
{
"login": "Iipin",
"name": "Iipin",
"avatar_url": "https://avatars.githubusercontent.com/u/52832022?v=4",
"profile": "https://github.com/Iipin",
"contributions": [
"code"
]
},
{
"login": "avihai-yosef",
"name": "avihai-yosef",
"avatar_url": "https://avatars.githubusercontent.com/u/79567307?v=4",
"profile": "https://github.com/avihai-yosef",
"contributions": [
"code"
]
},
{
"login": "anthonyh209",
"name": "anthonyh209",
"avatar_url": "https://avatars.githubusercontent.com/u/33107540?v=4",
"profile": "https://github.com/anthonyh209",
"contributions": [
"code"
]
},
{
"login": "ReznikovRoman",
"name": "Roman Reznikov",
"avatar_url": "https://avatars.githubusercontent.com/u/44291988?v=4",
"profile": "http://linkedin.com/in/roman-reznikov",
"contributions": [
"code"
]
},
{
"login": "gigelu",
"name": "gigelu",
"avatar_url": "https://avatars.githubusercontent.com/u/270697?v=4",
"profile": "https://github.com/gigelu",
"contributions": [
"code"
]
},
{
"login": "roeeyn",
"name": "Rodrigo Medina",
"avatar_url": "https://avatars.githubusercontent.com/u/13385000?v=4",
"profile": "https://github.com/roeeyn",
"contributions": [
"code"
]
},
{
"login": "gegnew",
"name": "Gerrit Egnew",
"avatar_url": "https://avatars.githubusercontent.com/u/35822787?v=4",
"profile": "https://gerritegnew.info/",
"contributions": [
"code"
]
},
{
"login": "danielkatzan",
"name": "danielkatzan",
"avatar_url": "https://avatars.githubusercontent.com/u/9249066?v=4",
"profile": "https://github.com/danielkatzan",
"contributions": [
"doc"
]
},
{
"login": "abdulhaq-e",
"name": "Abdulhaq Emhemmed",
"avatar_url": "https://avatars.githubusercontent.com/u/2532125?v=4",
"profile": "https://github.com/abdulhaq-e",
"contributions": [
"code"
]
},
{
"login": "klimantje",
"name": "klimantje",
"avatar_url": "https://avatars.githubusercontent.com/u/20017047?v=4",
"profile": "https://github.com/klimantje",
"contributions": [
"code"
]
},
{
"login": "tcrasset",
"name": "Tom Crasset",
"avatar_url": "https://avatars.githubusercontent.com/u/25140344?v=4",
"profile": "https://github.com/tcrasset",
"contributions": [
"code"
]
},
{
"login": "185504a9",
"name": "cătălin",
"avatar_url": "https://avatars.githubusercontent.com/u/45485069?v=4",
"profile": "https://git.roboces.dev/catalin",
"contributions": [
"code"
]
},
{
"login": "adhtruong",
"name": "Andrew Truong",
"avatar_url": "https://avatars.githubusercontent.com/u/40660973?v=4",
"profile": "https://github.com/adhtruong",
"contributions": [
"code",
"doc"
]
},
{
"login": "anthonyjgraff",
"name": "Anthony",
"avatar_url": "https://avatars.githubusercontent.com/u/59455370?v=4",
"profile": "https://github.com/anthonyjgraff",
"contributions": [
"code",
"doc",
"test"
]
},
{
"login": "johnraz",
"name": "Jonathan Liuti",
"avatar_url": "https://avatars.githubusercontent.com/u/304164?v=4",
"profile": "https://github.com/johnraz",
"contributions": [
"code",
"doc",
"test"
]
},
{
"login": "julioolvr",
"name": "Julio Olivera",
"avatar_url": "https://avatars.githubusercontent.com/u/1302493?v=4",
"profile": "https://julio.li/",
"contributions": [
"code",
"test"
]
},
{
"login": "g0di",
"name": "Benoît Godard",
"avatar_url": "https://avatars.githubusercontent.com/u/2545380?v=4",
"profile": "https://github.com/g0di",
"contributions": [
"code",
"doc",
"test"
]
},
{
"login": "hsorsky",
"name": "Henry Sorsky",
"avatar_url": "https://avatars.githubusercontent.com/u/36887638?v=4",
"profile": "https://github.com/hsorsky",
"contributions": [
"infra"
]
},
{
"login": "wer153",
"name": "Kim Minki",
"avatar_url": "https://avatars.githubusercontent.com/u/23370765?v=4",
"profile": "https://github.com/wer153",
"contributions": [
"doc"
]
},
{
"login": "TimDumol",
"name": "Tim Joseph Dumol",
"avatar_url": "https://avatars.githubusercontent.com/u/49169?v=4",
"profile": "https://www.timdumol.com/",
"contributions": [
"doc"
]
},
{
"login": "wangxin688",
"name": "jeffry",
"avatar_url": "https://avatars.githubusercontent.com/u/36665036?v=4",
"profile": "https://github.com/wangxin688",
"contributions": [
"code"
]
},
{
"login": "Reskov",
"name": "Sergey Kovalev",
"avatar_url": "https://avatars.githubusercontent.com/u/4832451?v=4",
"profile": "https://github.com/Reskov",
"contributions": [
"code"
]
},
{
"login": "Vegemash",
"name": "Isaac Jackson",
"avatar_url": "https://avatars.githubusercontent.com/u/2470379?v=4",
"profile": "https://github.com/Vegemash",
"contributions": [
"code"
]
},
{
"login": "nisemenov",
"name": "Nikita Semenov",
"avatar_url": "https://avatars.githubusercontent.com/u/117774141?v=4",
"profile": "https://github.com/nisemenov",
"contributions": [
"code",
"doc"
]
},
{
"login": "iloveitaly",
"name": "Michael Bianco",
"avatar_url": "https://avatars.githubusercontent.com/u/150855?v=4",
"profile": "https://mikebian.co/",
"contributions": [
"code",
"doc"
]
},
{
"login": "marcuslimdw",
"name": "Marcus",
"avatar_url": "https://avatars.githubusercontent.com/u/42759889?v=4",
"profile": "https://github.com/marcuslimdw",
"contributions": [
"code"
]
},
{
"login": "Rub1kCube",
"name": "Rub1kCube",
"avatar_url": "https://avatars.githubusercontent.com/u/90901892?v=4",
"profile": "https://github.com/Rub1kCube",
"contributions": [
"test"
]
},
{
"login": "RasmusNygren",
"name": "RasmusNygren",
"avatar_url": "https://avatars.githubusercontent.com/u/26030663?v=4",
"profile": "https://github.com/RasmusNygren",
"contributions": [
"doc"
]
},
{
"login": "arembridge",
"name": "rembridge",
"avatar_url": "https://avatars.githubusercontent.com/u/35376887?v=4",
"profile": "https://github.com/arembridge",
"contributions": [
"code"
]
},
{
"login": "bullfest",
"name": "Alexander Viklund",
"avatar_url": "https://avatars.githubusercontent.com/u/4342153?v=4",
"profile": "https://www.youtube.com/watch?v=1A3W75vH1D4",
"contributions": [
"code"
]
},
{
"login": "AlexPetul",
"name": "Alex Petul",
"avatar_url": "https://avatars.githubusercontent.com/u/47738904?v=4",
"profile": "https://skydi.io",
"contributions": [
"code"
]
},
{
"login": "Hugo-C",
"name": "Hugo-C",
"avatar_url": "https://avatars.githubusercontent.com/u/24675917?v=4",
"profile": "https://github.com/Hugo-C",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
"skipCi": true,
"repoType": "github",
"repoHost": "https://github.com",
"projectName": "polyfactory",
"projectOwner": "litestar-org",
"commitType": "docs"
}
python-polyfactory-3.3.0/.github/ 0000775 0000000 0000000 00000000000 15146550034 0016752 5 ustar 00root root 0000000 0000000 python-polyfactory-3.3.0/.github/CODEOWNERS 0000664 0000000 0000000 00000001132 15146550034 0020342 0 ustar 00root root 0000000 0000000 # Code owner settings for `litestar`
# @maintainers should be assigned to all reviews.
# Most specific assignment takes precedence though, so if you add a more specific thing than the `*` glob, you must also add @maintainers
# For more info about code owners see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-example
# Global Assignment
* @litestar-org/maintainers @litestar-org/members
# Documentation
docs/* @litestar-org/maintainers @JacobCoffee @provinzkraut
# polyfactory
* @adhtruong
python-polyfactory-3.3.0/.github/ISSUE_TEMPLATE/ 0000775 0000000 0000000 00000000000 15146550034 0021135 5 ustar 00root root 0000000 0000000 python-polyfactory-3.3.0/.github/ISSUE_TEMPLATE/BUG.yaml 0000664 0000000 0000000 00000004476 15146550034 0022451 0 ustar 00root root 0000000 0000000 name: "Bug Report"
description: Create an issue for a bug.
title: "Bug:
"
labels: ["bug", "triage required"]
body:
- type: textarea
id: description
attributes:
label: "Description"
description: Please enter an description of the bug you are encountering
placeholder:
validations:
required: true
- type: input
id: reprod-url
attributes:
label: "URL to code causing the issue"
description: Please enter the URL to provide a reproduction of the issue, if applicable
placeholder: ex. https://github.com/USERNAME/REPO-NAME
validations:
required: false
- type: textarea
id: mcve
attributes:
label: "MCVE"
description: "Please provide a minimal, complete, and verifiable example of the issue."
value: |
```py
# Your MCVE code here
```
render: python
validations:
required: false
- type: textarea
id: reprod
attributes:
label: "Steps to reproduce"
description: Please enter the exact steps to reproduce the issue
value: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
render: bash
validations:
required: false
- type: textarea
id: screenshot
attributes:
label: "Screenshots"
description: If applicable, add screenshots to help explain your problem.
value: |
"In the format of: ``"
validations:
required: false
- type: textarea
id: logs
attributes:
label: "Logs"
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: bash
validations:
required: false
- type: textarea
id: version
attributes:
label: "Release Version"
description: What version of the project are you using when encountering this issue?
validations:
required: true
- type: checkboxes
id: platform
attributes:
label: "Platform"
description: What platform are you encountering the issue on?
options:
- label: "Linux"
- label: "Mac"
- label: "Windows"
- label: "Other (Please specify in the description above)"
validations:
required: false
python-polyfactory-3.3.0/.github/ISSUE_TEMPLATE/DOCS.yaml 0000664 0000000 0000000 00000000576 15146550034 0022561 0 ustar 00root root 0000000 0000000 name: "Documentation Update"
description: Create an issue for documentation changes
title: "Docs: "
labels: ["documentation"]
body:
- type: textarea
id: summary
attributes:
label: "Summary"
description: Provide a brief summary of your feature request
placeholder: Describe in a few lines your feature request
validations:
required: true
python-polyfactory-3.3.0/.github/ISSUE_TEMPLATE/REQUEST.yaml 0000664 0000000 0000000 00000002301 15146550034 0023145 0 ustar 00root root 0000000 0000000 name: "Feature Request"
description: Create an issue for a new feature request
title: "Enhancement: "
labels: ["enhancement"]
body:
- type: textarea
id: summary
attributes:
label: "Summary"
description: Provide a brief summary of your feature request
placeholder: Describe in a few lines your feature request
validations:
required: true
- type: textarea
id: basic_example
attributes:
label: "Basic Example"
description: Indicate here some basic examples of your feature.
placeholder: Provide some basic example of your feature request
validations:
required: false
- type: textarea
id: drawbacks
attributes:
label: "Drawbacks and Impact"
description: What are the drawbacks or impacts of your feature request?
placeholder: Describe any the drawbacks or impacts of your feature request
validations:
required: false
- type: textarea
id: unresolved_question
attributes:
label: "Unresolved questions"
description: What, if any, unresolved questions do you have about your feature request?
placeholder: Identify any unresolved issues.
validations:
required: false
python-polyfactory-3.3.0/.github/ISSUE_TEMPLATE/config.yml 0000664 0000000 0000000 00000001201 15146550034 0023117 0 ustar 00root root 0000000 0000000 blank_lines_enabled: true
contact_links:
- name: Polyfactory Documentation
url: https://polyfactory.litestar.dev/
about: Official Polyfactory documentation - please check here before opening an issue.
- name: Litestar Documentation
url: https://docs.litestar.dev/
about: Official Litestar documentation - please check here before opening an issue.
- name: Litestar Website
url: https://litestar.dev/
about: Main Litestar website - for details about Litestar's projects.
- name: Discord
url: https://discord.gg/MmcwxztmQb
about: Join our Discord community to chat or get in touch with the maintainers.
python-polyfactory-3.3.0/.github/dependabot.yaml 0000664 0000000 0000000 00000000165 15146550034 0021745 0 ustar 00root root 0000000 0000000 version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
python-polyfactory-3.3.0/.github/workflows/ 0000775 0000000 0000000 00000000000 15146550034 0021007 5 ustar 00root root 0000000 0000000 python-polyfactory-3.3.0/.github/workflows/ci.yml 0000664 0000000 0000000 00000012241 15146550034 0022125 0 ustar 00root root 0000000 0000000 name: Tests And Linting
on:
pull_request:
push:
branches:
- main
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
- name: Instal dependencies
run: uv sync --all-groups
- uses: j178/prek-action@v1
test:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
pydantic-version: ["1.10", "2.0"]
sqla-version: ["1.4", "2"]
exclude:
- pydantic-version: "1.10"
sqla-version: "1.4"
- python-version: "3.14"
pydantic-version: "1.10"
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Set up python ${{ matrix.python-version }}
id: checkout-python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Create cache file
run: echo '${{ matrix.pydantic-version }}-${{ matrix.sqla-version }}' > ./matrix-file.txt
- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
cache-dependency-glob: |
uv.lock
matrix-file.txt
- name: Install pydantic
if: matrix.pydantic-version == '1.10'
run: uv add --group pydantic "pydantic[email]==1.10.17"
- name: Pin hypothesis for pydantic 1.10
if: matrix.pydantic-version == '1.10'
run: uv add --group test "hypothesis==6.135.20"
- name: Install SQLAlchemy
if: matrix.sqla-version == '1.4'
run: uv add --group sqlalchemy "sqlalchemy[asyncio]==1.4.49"
- name: Sync
run: uv sync --all-extras
- name: Test
if: matrix.python-version != '3.13' || matrix.pydantic-version != '2.0' || matrix.sqla-version != '2'
run: uv run pytest tests
- name: Test with Coverage
if: matrix.python-version == '3.13' && matrix.pydantic-version == '2.0' && matrix.sqla-version == '2'
run: uv run pytest tests docs/examples --cov=. --cov-report=xml
- uses: actions/upload-artifact@v6
if: matrix.python-version == '3.13' && matrix.pydantic-version == '2.0' && matrix.sqla-version == '2'
with:
name: coverage-data
path: coverage.xml
build-docs:
needs:
- validate
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
- name: Install dependencies
run: uv sync --all-extras
- name: Build docs
run: uv run make docs
- name: Save PR number
env:
PR_NUMBER: ${{ github.event.number }}
run: echo $PR_NUMBER > .pr_number
- name: Upload artifact
uses: actions/upload-artifact@v6
with:
name: docs-preview
include-hidden-files: true
path: |
docs/_build/html
.pr_number
codeql:
needs:
- test
- validate
runs-on: ubuntu-latest
permissions:
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Initialize CodeQL With Dependencies
if: github.event_name == 'push' && github.ref_name == 'main'
uses: github/codeql-action/init@v4
- name: Initialize CodeQL Without Dependencies
if: github.event_name == 'pull_request'
uses: github/codeql-action/init@v4
with:
setup-python-dependencies: false
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
upload-test-coverage:
runs-on: ubuntu-latest
needs:
- test
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Download Artifacts
uses: actions/download-artifact@v7
with:
name: coverage-data
- name: Fix coverage file name
run: sed -i "s/home\/runner\/work\/polyfactory\/polyfactory/github\/workspace/g" coverage.xml
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
files: coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
test_success:
needs: test
if: always()
runs-on: ubuntu-latest
permissions: {}
steps:
- name: Report success or fail
run: |
echo "test workflow exited with ${{ needs.test.result }}"
exit ${{ needs.test.result == 'success' && '0' || '1' }}
python-polyfactory-3.3.0/.github/workflows/docs-preview.yml 0000664 0000000 0000000 00000004445 15146550034 0024150 0 ustar 00root root 0000000 0000000 name: Deploy Documentation Preview
on:
workflow_run:
workflows: [Tests And Linting]
types: [completed]
jobs:
deploy:
if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Download artifact
uses: dawidd6/action-download-artifact@v14
with:
workflow_conclusion: success
run_id: ${{ github.event.workflow_run.id }}
path: docs-preview
name: docs-preview
- name: Set PR number
run: echo "PR_NUMBER=$(cat docs-preview/.pr_number)" >> $GITHUB_ENV
- name: Deploy docs preview
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: docs-preview/docs/_build/html
token: ${{ secrets.DOCS_PREVIEW_DEPLOY_TOKEN }}
repository-name: litestar-org/polyfactory-docs-preview
clean: false
target-folder: ${{ env.PR_NUMBER }}
branch: gh-pages
- uses: actions/github-script@v8
env:
PR_NUMBER: ${{ env.PR_NUMBER }}
with:
script: |
const issue_number = process.env.PR_NUMBER
const body = "Documentation preview will be available shortly at https://litestar-org.github.io/polyfactory-docs-preview/" + issue_number
const opts = github.rest.issues.listComments.endpoint.merge({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue_number,
});
const comments = await github.paginate(opts)
for (const comment of comments) {
if (comment.user.id === 41898282 && comment.body === body) {
await github.rest.issues.deleteComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: comment.id
})
}
}
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue_number,
body: body,
})
python-polyfactory-3.3.0/.github/workflows/docs.yml 0000664 0000000 0000000 00000001722 15146550034 0022464 0 ustar 00root root 0000000 0000000 name: Documentation Building
on:
release:
types: [published]
push:
branches:
- main
jobs:
docs:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
- name: Install dependencies
run: uv sync --all-extras
- name: Fetch gh pages
run: git fetch origin gh-pages --depth=1
- name: Build release docs
run: uv run python tools/build_docs.py docs-build
if: github.event_name == 'release'
- name: Build dev docs
run: uv run python tools/build_docs.py docs-build
if: github.event_name == 'push'
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: docs-build
python-polyfactory-3.3.0/.github/workflows/pr-title.yml 0000664 0000000 0000000 00000000532 15146550034 0023272 0 ustar 00root root 0000000 0000000 name: "Lint PR Title"
on:
pull_request_target:
types:
- opened
- edited
- synchronize
permissions:
pull-requests: read
jobs:
main:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
python-polyfactory-3.3.0/.github/workflows/publish.yml 0000664 0000000 0000000 00000002500 15146550034 0023175 0 ustar 00root root 0000000 0000000 name: Latest Release
on:
release:
types: [published]
workflow_dispatch:
jobs:
publish-release:
name: upload release to PyPI
runs-on: ubuntu-latest
permissions:
id-token: write
environment: release
steps:
- name: Check out repository
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
- name: Build package
run: uv build
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
build-docs:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
- name: Install dependencies
run: uv sync --all-extras
- name: Build docs
run: uv run make docs
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: docs/_build/html
python-polyfactory-3.3.0/.gitignore 0000664 0000000 0000000 00000001314 15146550034 0017401 0 ustar 00root root 0000000 0000000 # folders
__pycache__/
.auto_pytabs_cache/
.hypothesis/
.idea/
.mypy_cache/
.pytest_cache/
.scannerwork/
.venv/
.vscode/
*.egg-info/
build/
dist/
node_modules/
results/
site/
target/
# files
**/*.so
**/*.sqlite
**/*.sqlite*
*.iml
.DS_Store
.coverage
.python-version
.ruff_cache
/docs/_build/
coverage.*
setup.py
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
/.pdm-python
python-polyfactory-3.3.0/.pre-commit-config.yaml 0000664 0000000 0000000 00000003037 15146550034 0021676 0 ustar 00root root 0000000 0000000 default_language_version:
python: "3.13"
repos:
- repo: https://github.com/compilerla/conventional-pre-commit
rev: v4.0.0
hooks:
- id: conventional-pre-commit
stages: [commit-msg]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: check-ast
- id: check-case-conflict
- id: check-merge-conflict
- id: check-toml
- id: debug-statements
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: "v0.11.0"
hooks:
- id: ruff
args: ["--fix"]
- id: ruff-format
- repo: https://github.com/crate-ci/typos
rev: v1.30.3
hooks:
- id: typos
- repo: https://github.com/pycontribs/mirrors-prettier
rev: "v3.5.3"
hooks:
- id: prettier
exclude: ".all-contributorsrc"
- repo: https://github.com/ComPWA/taplo-pre-commit
rev: v0.9.3
hooks:
- id: taplo-format
exclude: "uv.lock"
- repo: local
hooks:
- id: mypy
name: mypy
entry: uv run --all-groups mypy
language: system
exclude: "test_decimal_constraints|examples/fields/test_example_2"
types: [python]
require_serial: true
- id: pyright
name: pyright
exclude: "tests"
language: system
entry: uv run --all-groups pyright
types: [python]
- repo: https://github.com/sphinx-contrib/sphinx-lint
rev: "v1.0.0"
hooks:
- id: sphinx-lint
python-polyfactory-3.3.0/.sourcery.yaml 0000664 0000000 0000000 00000001156 15146550034 0020232 0 ustar 00root root 0000000 0000000 ignore:
- .tox/
- .venv/
- dist/
- docs/_build/
- docs/_static/
- node_modules/
- vendor/
- venv/
rule_settings:
enable: [default]
disable: [dont-import-test-modules]
rule_types:
- refactoring
- suggestion
- comment
python_version: "3.8"
rules: []
metrics:
quality_threshold: 25.0
github:
ignore_labels:
- sourcery-ignore
- docs
labels:
- build-ignore
request_review:
origin: owner
forked: author
sourcery_branch: sourcery/{base_branch}
clone_detection:
min_lines: 3
min_duplicates: 2
identical_clones_only: false
proxy:
no_ssl_verify: false
python-polyfactory-3.3.0/CONTRIBUTING.rst 0000664 0000000 0000000 00000007772 15146550034 0020070 0 ustar 00root root 0000000 0000000 Contributing
==================
Setting up the environment
--------------------------
1. Install `uv `_
2. Run ``uv sync --all-extras`` to create a `virtual environment `_ and install
the dependencies
3. Install `prek `_
4. Run ``prek install`` to install pre-commit hooks
Code contributions
------------------
Workflow
++++++++
1. `Fork `_ the `Polyfactory repository `_
2. Clone your fork locally with git
3. `Set up the environment <#setting-up-the-environment>`_
4. Make your changes
5. (Optional) Run ``prek run --all-files`` to run linters and formatters. This step is optional and will be executed
automatically by git before you make a commit, but you may want to run it manually in order to apply fixes
6. Commit your changes to git
7. Push the changes to your fork
8. Open a `pull request `_. Give the pull request a descriptive title
indicating what it changes. If it has a corresponding open issue.
For example a pull request that fixes issue ``bug: Increased stack size making it impossible to find needle``
could be titled ``fix: Make needles easier to find by applying fire to haystack``
.. tip:: Pull requests and commits all need to follow the
`Conventional Commit format `_
Project documentation
---------------------
The documentation is located in the ``/docs`` directory and is built with `ReST `_
and `Sphinx `_. If you're unfamiliar with any of those,
`ReStructuredText primer `_ and
`Sphinx quickstart `_ are recommended reads.
Docs theme and appearance
+++++++++++++++++++++++++
We welcome contributions that enhance / improve the appearance and usability of the docs. We use a custom theme that
inherits the `Shibuya theme `_, which comes with a lot of options out of the box.
If you wish to contribute to the docs style / setup, or static site generation, you should consult the theme docs
as a first step.
Running the docs locally
++++++++++++++++++++++++
To run or build the docs locally, you need to first install the required dependencies:
.. code-block:: console
:caption: Installing the docs dependencies
uv sync --all-extras
Then you can serve the documentation with ``make docs-serve``, or build them with ``make docs``
Writing and editing docs
++++++++++++++++++++++++
We welcome contributions that enhance / improve the content of the docs. Feel free to add examples, clarify text,
restructure the docs etc., but make sure to follow these guidelines:
- Write text in idiomatic english, using simple language
- Keep examples simple and self contained
- Provide links where applicable
- Use `intersphinx `_ wherever possible when
referencing external libraries
- Provide diagrams using `mermaidjs `_ where applicable and possible
Creating a new release
----------------------
1. Run `make release` to bump version and commit.
.. note:: The version should follow `semantic versioning `_ and `PEP 440 `_.
2. Push and create PR.
3. In GitHub go to the `releases tab `_
4. Pick "`Draft a new release `_"
5. Give it a title and a tag, both ``vX.X.X``
6. Fill in the release description. You can let GitHub do it for you and then edit as needed.
7. Publish the release.
8. Go to `Actions `_ and approve the workflow
9. Check that the workflow runs successfully
python-polyfactory-3.3.0/LICENSE 0000664 0000000 0000000 00000002104 15146550034 0016414 0 ustar 00root root 0000000 0000000 The MIT License (MIT)
Copyright (c) 2021, 2022, 2023 Litestar Org.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
python-polyfactory-3.3.0/Makefile 0000664 0000000 0000000 00000010371 15146550034 0017054 0 ustar 00root root 0000000 0000000 SHELL := /bin/bash
# =============================================================================
# Variables
# =============================================================================
.DEFAULT_GOAL:=help
.EXPORT_ALL_VARIABLES:
.PHONY: help
help: ## Display this help text for Makefile
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
.PHONY: upgrade
upgrade: ## Upgrade all dependencies to the latest stable versions
@echo "=> Updating all dependencies"
@uv sync --upgrade
@echo "=> Dependencies Updated"
@uv run prek autoupdate
@echo "=> Updated Pre-commit"
# =============================================================================
# Developer Utils
# =============================================================================
.PHONY: install
install: ## Install the project, dependencies, and pre-commit for local development
@if [ "$(VENV_EXISTS)" ]; then echo "=> Removing existing virtual environment"; fi
if [ "$(VENV_EXISTS)" ]; then $(MAKE) destroy; fi
if [ "$(VENV_EXISTS)" ]; then $(MAKE) clean; fi
@uv sync --all-extras
@echo "=> Installing pre-commit hooks"
@uv run prek install --install-hooks
@echo "=> Install complete! Note: If you want to re-install re-run 'make install'"
.PHONY: clean
clean: ## Cleanup temporary build artifacts
@echo "=> Cleaning working directory"
@rm -rf .pytest_cache .ruff_cache .hypothesis build/ dist/ .eggs/ .egg/
@find . -name '*.egg-info' -exec rm -rf {} +
@find . -name '*.pyc' -exec rm -f {} +
@find . -name '*.pyo' -exec rm -f {} +
@find . -name '*~' -exec rm -f {} +
@find . -name '__pycache__' -exec rm -rf {} +
@find . -name '.ipynb_checkpoints' -exec rm -rf {} +
@rm -rf .coverage coverage.xml coverage.json htmlcov/ .pytest_cache tests/.pytest_cache tests/**/.pytest_cache .mypy_cache
$(MAKE) docs-clean
.PHONY: destroy
destroy: ## Destroy the virtual environment
@rm -rf .venv
.PHONY: lock
lock: ## Rebuild lockfiles from scratch, updating all dependencies
@uv lock
.PHONY: release
release:
./tools/prepare-release.sh
# =============================================================================
# Tests, Linting, Coverage
# =============================================================================
.PHONY: lint
lint: ## Runs pre-commit hooks; includes ruff linting, ruff formatting, codespell
@echo "=> Running pre-commit process"
@uv run prek run --all-files
@echo "=> Pre-commit complete"
.PHONY: coverage
coverage: ## Run the tests and generate coverage report
@echo "=> Running tests with coverage"
@uv run pytest tests --cov=polyfactory
@uv run coverage html
@uv run coverage xml
@echo "=> Coverage report generated"
.PHONY: test
test: ## Run the tests
@echo "=> Running test cases"
@uv run pytest tests
@echo "=> Tests complete"
.PHONY: test-examples
test-examples: ## Run the examples tests
@uv run pytest docs/examples
.PHONY: test-all
test-all: test test-examples ## Run all tests
.PHONY: check-all
check-all: lint test-all coverage ## Run all linting, tests, and coverage checks
# =============================================================================
# Docs
# =============================================================================
.PHONY: docs-install
docs-install: ## Install docs dependencies
@echo "=> Installing documentation dependencies"
@uv sync --group docs
@echo "=> Installed documentation dependencies"
docs-clean: ## Dump the existing built docs
@echo "=> Cleaning documentation build assets"
@rm -rf docs/_build
@echo "=> Removed existing documentation build assets"
docs-serve: docs-clean ## Serve the docs locally
@echo "=> Serving documentation"
@uv run sphinx-autobuild docs docs/_build/ -j auto --watch polyfactory --watch docs --watch tests --watch CONTRIBUTING.rst --port 8002
docs: docs-clean ## Dump the existing built docs and rebuild them
@echo "=> Building documentation"
@uv run sphinx-build -M html docs docs/_build/ -E -a -j auto --keep-going
python-polyfactory-3.3.0/README.md 0000664 0000000 0000000 00000105033 15146550034 0016673 0 ustar 00root root 0000000 0000000
| Project | | Status |
| --------- | :-- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CI/CD | | [](https://github.com/litestar-org/polyfactory/actions/workflows/publish.yml) [](https://github.com/litestar-org/polyfactory/actions/workflows/ci.yml) [](https://github.com/litestar-org/polyfactory/actions/workflows/pages/pages-build-deployment) |
| Quality | | [](https://codecov.io/github/litestar-org/polyfactory) |
| Package | | [](https://badge.fury.io/py/polyfactory)    |
| Community | | [](https://reddit.com/r/litestarapi) [](https://discord.gg/X3FJqy8d2j) [](https://matrix.to/#/#litestar:matrix.org) [](https://blog.litestar.dev) [](https://twitter.com/LitestarAPI) [](https://blog.litestar.dev) |
| Meta | | [](https://github.com/litestar-org/polyfactory) [](https://github.com/python/mypy) [](https://spdx.org/licenses/) [](https://github.com/sponsors/litestar-org) [](https://pydantic.dev) [](https://github.com/astral-sh/ruff) [](https://github.com/astral-sh/ruff) [](https://sourcery.ai) [](#contributors-) |
# Polyfactory
Polyfactory is a simple and powerful mock data generation library, based around type
hints and supporting dataclasses, typed-dicts, pydantic models, msgspec structs and more.
Polyfactory part of the Litestar project and as such actively maintained by a community of maintainers and contributors.
## Example
```python
from dataclasses import dataclass
from polyfactory.factories import DataclassFactory
@dataclass
class Person:
name: str
age: float
height: float
weight: float
class PersonFactory(DataclassFactory[Person]):
...
def test_is_person() -> None:
person_instance = PersonFactory.build()
assert isinstance(person_instance, Person)
```
That's it - with almost no work, we are able to create a mock data object fitting the `Person` class model definition.
This is possible because of the typing information available on the dataclass, which are used as a
source of truth for data generation.
The factory parses the information stored in the dataclass and generates a dictionary of kwargs that are passed to
`Person`.
## Documentation
Usage and API reference documentation is available on https://polyfactory.litestar.dev/.
## Installation
```shell
pip install polyfactory
```
## Relation to Pydantic-Factories
Prior to version 2, this library was known as [pydantic-factories](https://pypi.org/project/pydantic-factories/), a name
under which it gained quite a bit of popularity.
A main motivator for the 2.0 release was that we wanted to support more than just Pydantic models, something which also
required a change to its core architecture. As this library would no longer be directly tied to Pydantic, `polyfactory`
was chosen as its new name to reflect its capabilities; It can generate mock data for dataclasses, typed-dicts,
Pydantic, odmantic, and beanie ODM models, as well as custom factories.
## Contributing
This library is a community driven open source project. We welcome and encourage contributions. Please check out the
GitHub issues, read the contribution guide (at the repository's root), and you're always welcome
to [join our discord server](https://discord.gg/F4jPQzHpBU).
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.
Contributions of any kind welcome!
python-polyfactory-3.3.0/codecov.yml 0000664 0000000 0000000 00000000255 15146550034 0017561 0 ustar 00root root 0000000 0000000 coverage:
status:
project:
default:
target: auto
threshold: 0.1%
patch:
default:
target: auto
comment:
require_changes: true
python-polyfactory-3.3.0/docs/ 0000775 0000000 0000000 00000000000 15146550034 0016342 5 ustar 00root root 0000000 0000000 python-polyfactory-3.3.0/docs/PYPI_README.md 0000664 0000000 0000000 00000057422 15146550034 0020474 0 ustar 00root root 0000000 0000000
| Project | | Status |
| --------- | :-- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CI/CD | | [](https://github.com/litestar-org/polyfactory/actions/workflows/publish.yml) [](https://github.com/litestar-org/polyfactory/actions/workflows/ci.yml) [](https://github.com/litestar-org/polyfactory/actions/workflows/pages/pages-build-deployment) |
| Quality | | [](https://codecov.io/github/litestar-org/polyfactory) |
| Package | | [](https://badge.fury.io/py/polyfactory)    |
| Community | | [](https://reddit.com/r/litestarapi) [](https://discord.gg/X3FJqy8d2j) [](https://matrix.to/#/#litestar:matrix.org) [](https://blog.litestar.dev) [](https://twitter.com/LitestarAPI) [](https://blog.litestar.dev) |
| Meta | | [](https://github.com/litestar-org/polyfactory) [](https://github.com/python/mypy) [](https://spdx.org/licenses/) [](https://github.com/sponsors/litestar-org) [](https://github.com/astral-sh/ruff) [](https://github.com/astral-sh/ruff) [](https://sourcery.ai) [](#contributors-) |
# Polyfactory
Polyfactory is a simple and powerful mock data generation library, based around type
hints and supporting dataclasses, typed-dicts, pydantic models, msgspec structs and more.
Polyfactory part of the Litestar project and as such actively maintained by a community of maintainers and contributors.
## Example
```python
from dataclasses import dataclass
from polyfactory.factories import DataclassFactory
@dataclass
class Person:
name: str
age: float
height: float
weight: float
class PersonFactory(DataclassFactory[Person]):
...
def test_is_person() -> None:
person_instance = PersonFactory.build()
assert isinstance(person_instance, Person)
```
That's it - with almost no work, we are able to create a mock data object fitting the `Person` class model definition.
This is possible because of the typing information available on the dataclass, which are used as a
source of truth for data generation.
The factory parses the information stored in the dataclass and generates a dictionary of kwargs that are passed to
`Person`.
## Documentation
Usage and API reference documentation is available on https://polyfactory.litestar.dev/.
## Installation
```shell
pip install polyfactory
```
## Relation to Pydantic-Factories
Prior to version 2, this library was known as [pydantic-factories](https://pypi.org/project/pydantic-factories/), a name
under which it gained quite a bit of popularity.
A main motivator for the 2.0 release was that we wanted to support more than just Pydantic models, something which also
required a change to its core architecture. As this library would no longer be directly tied to Pydantic, `polyfactory`
was chosen as its new name to reflect its capabilities; It can generate mock data for dataclasses, typed-dicts,
Pydantic, odmantic, and beanie ODM models, as well as custom factories.
## Contributing
This library is a community driven open source project. We welcome and encourage contributions. Please checkout the
GitHub issues, read the contribution guide (at the repository's root), and you're always welcome
to [join our discord server](https://discord.gg/F4jPQzHpBU).
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.
Contributions of any kind welcome!
python-polyfactory-3.3.0/docs/__init__.py 0000664 0000000 0000000 00000000000 15146550034 0020441 0 ustar 00root root 0000000 0000000 python-polyfactory-3.3.0/docs/_static/ 0000775 0000000 0000000 00000000000 15146550034 0017770 5 ustar 00root root 0000000 0000000 python-polyfactory-3.3.0/docs/_static/custom.css 0000664 0000000 0000000 00000006660 15146550034 0022024 0 ustar 00root root 0000000 0000000 /* Theme color definitions */
:root {
--brand-font-size-xl: 6rem;
--brand-font-size-lg: 5rem;
--brand-font-size-md: 4rem;
--brand-font-size-sm: 3rem;
--brand-font-size-xs: 2.2rem;
--brand-font-size-xxs: 1.6rem;
--brand-letter-spacing-xl: 0.25em;
--brand-letter-spacing-lg: 0.2em;
--brand-letter-spacing-md: 0.1em;
--brand-letter-spacing-sm: 0.05em;
--brand-letter-spacing-xs: 0.03em;
}
html.light {
--sl-color-primary: #202235;
--sl-color-secondary: #edb641;
--sl-color-accent: #ffd480;
--sl-color-text-1: var(--sl-color-primary);
--sl-color-text-2: var(--sl-color-secondary);
--sy-c-foot-background: #f0f0f0;
--yue-c-text: #000;
--brand-text-glow:
0 0 10px rgba(32, 34, 53, 0.3), 0 0 20px rgba(32, 34, 53, 0.2),
0 0 30px rgba(237, 182, 65, 0.1);
}
html.dark {
--sl-color-text-1: var(--sl-color-secondary);
--sy-c-foot-background: black;
--yue-c-text: #fff;
--brand-text-glow:
0 0 10px rgba(237, 182, 65, 0.4), 0 0 20px rgba(237, 182, 65, 0.3),
0 0 30px rgba(237, 182, 65, 0.2);
}
.title-with-logo {
display: flex;
align-items: center;
justify-content: center;
margin: 5rem auto 4rem;
width: 100%;
padding: 0 2rem;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
}
html[class] .title-with-logo .brand-text {
font-family: var(--sl-font-sans);
font-weight: 300;
font-size: var(--brand-font-size-lg);
letter-spacing: var(--brand-letter-spacing-xl);
text-transform: uppercase;
text-align: center;
line-height: 1.4;
max-width: 100%;
white-space: nowrap;
word-break: break-word;
word-wrap: break-word;
overflow-wrap: break-word;
hyphens: auto;
-webkit-hyphens: auto;
-ms-hyphens: auto;
transition:
color var(--sl-transition),
text-shadow var(--sl-transition);
}
html.light .title-with-logo .brand-text {
color: var(--sl-color-text-1);
text-shadow: var(--brand-text-glow);
}
html.dark .title-with-logo .brand-text {
color: var(--sl-color-text-2);
text-shadow: var(--brand-text-glow);
}
/* Button container wrapping */
.buttons.wrap {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.buttons.wrap .btn-no-wrap {
flex: 0 0 auto;
}
/* Large screens */
@media (min-width: 1200px) {
html[class] .title-with-logo .brand-text {
font-size: var(--brand-font-size-xl);
}
}
/* Medium-small screens */
@media (max-width: 991px) {
html[class] .title-with-logo .brand-text {
font-size: var(--brand-font-size-md);
letter-spacing: var(--brand-letter-spacing-lg);
}
}
/* Small screens */
@media (max-width: 767px) {
html[class] .title-with-logo .brand-text {
font-size: var(--brand-font-size-sm);
letter-spacing: var(--brand-letter-spacing-md);
}
html[class] .title-with-logo {
margin: 2rem auto 1.5rem;
}
}
/* Extra small screens */
@media (max-width: 480px) {
html[class] .title-with-logo .brand-text {
font-size: var(--brand-font-size-xs);
letter-spacing: var(--brand-letter-spacing-sm);
line-height: 1.2;
}
html[class] .title-with-logo {
margin: 1.5rem auto 1rem;
padding: 0 1rem;
}
}
/* Smallest screens */
@media (max-width: 360px) {
html[class] .title-with-logo .brand-text {
font-size: var(--brand-font-size-xxs);
letter-spacing: var(--brand-letter-spacing-xs);
}
}
/* Preserve existing layout styles */
#badges img {
margin-top: 0;
margin-bottom: 0;
}
#badges {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 3em;
}
python-polyfactory-3.3.0/docs/_static/logo-default.png 0000664 0000000 0000000 00000107704 15146550034 0023071 0 ustar 00root root 0000000 0000000 PNG
IHDR { F pHYs sRGB gAMA a YIDATx_U'u!m Tb -[Jgԅ .j($7
{9kUDHN"w>I y{rf͘ߥh#L8u?̺rjy4 7wmkzzkhʏrMă'9ޥ CH irE`砺7Y;mڛgLgb6M۶Rm~#< = 倧{