python
Package main provides a complete pipeline for Python projects using Poetry and PyPI.
Installation
dagger install github.com/felipepimentel/daggerverse/pipelines/python@29c06d0b9bb1008b38e93a45b98f79cf117dd0edEntrypoint
Return Type
Python !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| pythonVersion | String | "3.12-slim" | Python version to use |
| gitEmail | String | "github-actions[bot]@users.noreply.github.com" | Git email for commits |
| gitName | String | "github-actions[bot]" | Git username for commits |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@29c06d0b9bb1008b38e93a45b98f79cf117dd0ed call \
func (m *MyModule) Example() *dagger.Python {
return dag.
Python()
}@function
def example() -> dagger.Python:
return (
dag.python()
)@func()
example(): Python {
return dag
.python()
}Types
Python 🔗
Python orchestrates Python project workflows using Poetry and PyPI. It provides a complete CI/CD pipeline for Python projects, including testing, building, and publishing to PyPI.
publish() 🔗
Publish builds, tests, and publishes the Python package to PyPI and the container image. It returns the address of the published container or an error if any step fails.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| token | Secret ! | - | No description provided |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@29c06d0b9bb1008b38e93a45b98f79cf117dd0ed call \
publish --source DIR_PATH --token env:MYSECRETfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory, token *dagger.Secret) string {
return dag.
Python().
Publish(ctx, source, token)
}@function
async def example(source: dagger.Directory, token: dagger.Secret) -> str:
return await (
dag.python()
.publish(source, token)
)@func()
async example(source: Directory, token: Secret): Promise<string> {
return dag
.python()
.publish(source, token)
}build() 🔗
Build creates a container with all dependencies installed and configured. It returns the configured container or nil if the build fails.
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@29c06d0b9bb1008b38e93a45b98f79cf117dd0ed call \
build --source DIR_PATHfunc (m *MyModule) Example(source *dagger.Directory) *dagger.Container {
return dag.
Python().
Build(source)
}@function
def example(source: dagger.Directory) -> dagger.Container:
return (
dag.python()
.build(source)
)@func()
example(source: Directory): Container {
return dag
.python()
.build(source)
}test() 🔗
Test runs all quality checks and returns the combined test output. It returns an error if any check fails.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@29c06d0b9bb1008b38e93a45b98f79cf117dd0ed call \
test --source DIR_PATHfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string {
return dag.
Python().
Test(ctx, source)
}@function
async def example(source: dagger.Directory) -> str:
return await (
dag.python()
.test(source)
)@func()
async example(source: Directory): Promise<string> {
return dag
.python()
.test(source)
}lint() 🔗
Lint runs code quality checks using Ruff. It returns an error if any check fails.
Return Type
Void !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@29c06d0b9bb1008b38e93a45b98f79cf117dd0ed call \
lint --source DIR_PATHfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory) {
return dag.
Python().
Lint(ctx, source)
}@function
async def example(source: dagger.Directory) -> None:
return await (
dag.python()
.lint(source)
)@func()
async example(source: Directory): Promise<void> {
return dag
.python()
.lint(source)
}buildEnv() 🔗
BuildEnv creates a development environment with all dependencies installed. It returns the configured container.
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@29c06d0b9bb1008b38e93a45b98f79cf117dd0ed call \
build-env --source DIR_PATHfunc (m *MyModule) Example(source *dagger.Directory) *dagger.Container {
return dag.
Python().
BuildEnv(source)
}@function
def example(source: dagger.Directory) -> dagger.Container:
return (
dag.python()
.build_env(source)
)@func()
example(source: Directory): Container {
return dag
.python()
.buildEnv(source)
}