This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.3.2 instead.
pysvglib
A Python-based SVG graphics library for programmatically generating SVG diagrams from basic shapes.
Example
Import the library
import svg
Create a "root" SVG object and define the view box. Keyword arguments define
other parameters that will be passed to the fundamental svg node.
root = svg.RootSvg((-25, -25, 50, 50), width='50%', height='50%')
Add style definitions that will affect the entire graphic. Keyword arguments become css style parameters.
root.add_style(svg.Style('.glass', fill='#bbf7f4', fill_opacity=0.5))
root.add_style(svg.Style('.outline', stroke='black'))
Add child nodes and groups of nodes. These can be rectangles, circles, complex paths, etc.
root.append_child(svg.Rectangle(p1=(-10, -15), p2=(30, 85), fill='#cccccc', stroke='none'))
mygroup = svg.Group(id='mygroup')
mygroup.append_child(svg.Rectangle(center=(0, 0), width=5, height=10).append_class('glass'))
mygroup.append_child(svg.Rectangle(center=(3, 2), width=10, height=5).append_class('glass'))
root.append_child(mygroup)
path = svg.Path((6.7, -10), stroke_width=0.2, fill='none')
path.line_to((0, 20), relative=True).h_line(-2, relative=True) \
.arc_to((12.9, 12.9), 0, False, True, (0, -20), relative=True) \
.close()
path.append_class('outline')
root.append_child(path)
Apply transformations to nodes and groups.
mygroup.rotate(37, center=(4, 7))
mygroup.translate((2, -4))
path.skew_x(10)
Output the SVG markup as a string.
print(root)
Which results in:
<svg height="100%" viewBox="-25 -25 50 50" width="100%" xmlns="http://www.w3.org/2000/svg">
<style>
.glass {
fill: #bbf7f4;
fill-opacity: 0.5;
}
</style>
<g id="mygroup">
<rect fill="#cccccc" height="100" stroke="none" width="100" x="-50" y="-50"/>
<rect class="glass" height="10" width="5" x="-2.5" y="-5.0"/>
</g>
<path d="M 6.7 -10 l 0 20 h -2 a 12.9 12.9 0 0 1 0 -20 Z" fill="none" stroke-width="0.2"/>
</svg>
...or output it to a file:
root.write('my_picture.svg')
which results in:
Development
Use pipenv for local environment management.
After cloning the repository:
$ cd <project-repo>
$ pipenv install -e .[dev]
$ pipenv shell
Run tests by just executing pytest at the root of the local virtual
environment. Likewise enforce code style by running pycodestyle . from the
root of the local virtual environment.
To package and release, from within the virtual environment:
$ python setup.py sdist bdist_wheel
See also this page.
Metadata
Release files for pysvglib 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pysvglib-0.3.0.tar.gz | 6.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pysvglib-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.7 kB
Release files / pysvglib-0.3.0.tar.gz
| Download URL | pysvglib-0.3.0.tar.gz |
|---|---|
| Size | 6.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
28f682c5e45cb13a6d2fb591d00b4805d96990af9971d8396b969d86bb079d79
|
|
BLAKE2b-256 checksum How to use checksums |
4867307285cc8fa740ebd04802cb7a24ad7ba085ee7a0dd379ac860a9983f2de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.0
|
Release files / pysvglib-0.3.0-py3-none-any.whl
| Download URL | pysvglib-0.3.0-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e3589158c4d3a8ef10dbbaf7a36497f5734466d77d3567dac08f6863995f8752
|
|
BLAKE2b-256 checksum How to use checksums |
e20dc19aaf5b167f155c614ad950eeddf88a756a1563e3e97744d75d3b0e6391
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.0
|