Commit c85bdd84 authored by Jason R. Coombs's avatar Jason R. Coombs

Merge branch 'master' into bugfix/2232-adopt-distutils-default

parents 9e58d950 9d7b246c
[bumpversion]
current_version = 49.1.3
current_version = 49.3.0
commit = True
tag = True
......
---
name: Bug Report or Feature Request
about: Report a bug or request a feature
---
---
name: Setuptools warns about Python 2 incompatibility
about: Report the issue where setuptools 45 or later stops working on Python 2
title: Incompatible install in (summarize your environment)
labels: Python 2
assignees: ''
---
<!--
Please DO NOT SUBMIT this template without first investigating the issue and answering the questions below. This template is intended mainly for developers of systems and not for end users. If you are an end user experiencing the warning, please work with your system maintainers (starting with the project you're trying to use) to report the issue.
If you did not intend to use this template, but only meant to file a blank issue, just hit the back button and click "Open a blank issue".
Setuptools 45 dropped support for Python 2 with a strenuous warning and Setuptools 47 fails to run on Python 2.
In most cases, using pip 9 or later to install Setuptools from PyPI or any index supporting the Requires-Python metadata will do the right thing and install Setuptools 44.x on Python 2.
If you've come to file an issue, it's probably because some process managed to bypass these protections.
Your first course of action should be to reason about how you managed to get an unsupported version of Setuptools on Python 2. Please complete the sections below and provide any other detail about your environment that will help us help you.
-->
## Prerequisites
<!-- These are the recommended workarounds for the issue. Please
try them first. -->
- [ ] Read [Python 2 Sunset docs](https://setuptools.readthedocs.io/en/latest/python%202%20sunset.html).
- [ ] Python 2 is required for this application.
- [ ] I maintain the software that installs Setuptools (if not, please contact that project).
- [ ] Setuptools installed with pip 9 or later.
- [ ] Pinning Setuptools to `setuptools<45` in the environment was unsuccessful.
## Environment Details
- Operating System and version:
- Python version:
- Python installed how:
- Virtualenv version (if using virtualenv): n/a
Command(s) that triggered the warning/error (and output):
```
```
Command(s) used to install setuptools (and output):
```
```
Output of `pip --version` when installing setuptools:
```
```
## Other notes
......@@ -25,23 +25,54 @@ jobs:
- 3.6
- 3.5
os:
- ubuntu-latest
- ubuntu-18.04
- ubuntu-16.04
- macOS-latest
# - windows-2019
# - windows-2016
include:
# Pre-release versions (GH-shipped)
- os: ubuntu-20.04
python-version: 3.9.0-beta.4 - 3.9.0
# Pre-release versions (deadsnakes)
- os: ubuntu-20.04
python-version: 3.9-beta
# Dev versions (deadsnakes)
- os: ubuntu-20.04
python-version: 3.9-dev
- os: ubuntu-20.04
python-version: 3.8-dev
env:
NETWORK_REQUIRED: 1
PYTHON_VERSION: ${{ matrix.python-version }}
TOX_PARALLEL_NO_SPINNER: 1
TOXENV: python
USE_DEADSNAKES: false
steps:
- uses: actions/checkout@master
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1.1.1
- name: Set flag to use deadsnakes
if: >-
endsWith(env.PYTHON_VERSION, '-beta') ||
endsWith(env.PYTHON_VERSION, '-dev')
run: |
from __future__ import print_function
python_version = '${{ env.PYTHON_VERSION }}'.replace('-beta', '')
print('::set-env name=PYTHON_VERSION::{ver}'.format(ver=python_version))
print('::set-env name=USE_DEADSNAKES::true')
shell: python
- name: Set up Python ${{ env.PYTHON_VERSION }} (deadsnakes)
uses: deadsnakes/action@v1.0.0
if: fromJSON(env.USE_DEADSNAKES) && true || false
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v2.1.1
if: >-
!fromJSON(env.USE_DEADSNAKES) && true || false
with:
python-version: ${{ matrix.python-version }}
python-version: ${{ env.PYTHON_VERSION }}
- name: Log Python version
run: >-
python --version
......@@ -73,9 +104,9 @@ jobs:
run: >-
python -m pip freeze --all
- name: Adjust TOXENV for PyPy
if: startsWith(matrix.python-version, 'pypy')
if: startsWith(env.PYTHON_VERSION, 'pypy')
run: >-
echo "::set-env name=TOXENV::${{ matrix.python-version }}"
echo "::set-env name=TOXENV::${{ env.PYTHON_VERSION }}"
- name: Log env vars
run: >-
env
......@@ -91,6 +122,7 @@ jobs:
python -m
tox
--parallel auto
--parallel-live
--notest
--skip-missing-interpreters false
- name: Test with tox
......@@ -98,3 +130,6 @@ jobs:
python -m
tox
--parallel auto
--parallel-live
--
-vvvvv
v49.3.0
-------
* #2259: Setuptools now provides a .pth file (except for editable installs of setuptools) to the target environment to ensure that when enabled, the setuptools-provided distutils is preferred before setuptools has been imported (and even if setuptools is never imported). Honors the SETUPTOOLS_USE_DISTUTILS environment variable.
v49.2.1
-------
* #2257: Fixed two flaws in distutils._msvccompiler.MSVCCompiler.spawn.
v49.2.0
-------
* #2230: Now warn the user when setuptools is imported after distutils modules have been loaded (exempting PyPy for 3.6), directing the users of packages to import setuptools first.
v49.1.3
-------
......
.. image:: https://raw.githubusercontent.com/pypa/setuptools/master/docs/logo/banner%201%20line%20color.svg
.. image:: https://img.shields.io/pypi/v/setuptools.svg
:target: `PyPI link`_
......@@ -27,7 +24,6 @@
.. image:: https://tidelift.com/badges/github/pypa/setuptools?style=flat
:target: https://tidelift.com/subscription/pkg/pypi-setuptools?utm_source=pypi-setuptools&utm_medium=readme
See the `Installation Instructions
<https://packaging.python.org/installing/>`_ in the Python Packaging
User's Guide for instructions on installing, upgrading, and uninstalling
......@@ -58,4 +54,4 @@ Code of Conduct
Everyone interacting in the setuptools project's codebases, issue trackers,
chat rooms, and mailing lists is expected to follow the
`PyPA Code of Conduct <https://www.pypa.io/en/latest/code-of-conduct/>`_.
`PSF Code of Conduct <https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md>`_.
"""
Ensure that the local copy of distutils is preferred over stdlib.
See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401
for more motivation.
"""
import sys
import re
import os
import re
import importlib
import warnings
is_pypy = '__pypy__' in sys.builtin_module_names
def warn_distutils_present():
if 'distutils' not in sys.modules:
return
if is_pypy and sys.version_info < (3, 7):
# PyPy for 3.6 unconditionally imports distutils, so bypass the warning
# https://foss.heptapod.net/pypy/pypy/-/blob/be829135bc0d758997b3566062999ee8b23872b4/lib-python/3/site.py#L250
return
warnings.warn(
"Distutils was imported before Setuptools. This usage is discouraged "
"and may exhibit undesirable behaviors or errors. Please use "
"Setuptools' objects directly or at least import Setuptools first.")
def clear_distutils():
if 'distutils' not in sys.modules:
return
warnings.warn("Setuptools is replacing distutils")
warnings.warn("Setuptools is replacing distutils.")
mods = [name for name in sys.modules if re.match(r'distutils\b', name)]
for name in mods:
del sys.modules[name]
......@@ -40,5 +49,48 @@ def ensure_local_distutils():
assert '_distutils' in core.__file__, core.__file__
if enabled():
ensure_local_distutils()
def do_override():
"""
Ensure that the local copy of distutils is preferred over stdlib.
See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401
for more motivation.
"""
warn_distutils_present()
if enabled():
ensure_local_distutils()
class DistutilsMetaFinder:
def find_spec(self, fullname, path, target=None):
if path is not None or fullname != "distutils":
return None
return self.get_distutils_spec()
def get_distutils_spec(self):
import importlib.util
class DistutilsLoader(importlib.util.abc.Loader):
def create_module(self, spec):
return importlib.import_module('._distutils', 'setuptools')
def exec_module(self, module):
pass
return importlib.util.spec_from_loader('distutils', DistutilsLoader())
DISTUTILS_FINDER = DistutilsMetaFinder()
def add_shim():
sys.meta_path.insert(0, DISTUTILS_FINDER)
def remove_shim():
try:
sys.meta_path.remove(DISTUTILS_FINDER)
except ValueError:
pass
__import__('_distutils_hack').do_override()
......@@ -15,10 +15,28 @@ collect_ignore = [
'tests/manual_test.py',
'setuptools/tests/mod_with_constant.py',
'setuptools/_distutils',
'setuptools/distutils_patch.py',
'_distutils_hack',
]
def pytest_configure(config):
disable_coverage_on_pypy(config)
def disable_coverage_on_pypy(config):
"""
Coverage makes tests on PyPy unbearably slow, so disable it.
"""
if '__pypy__' not in sys.builtin_module_names:
return
# Recommended at pytest-dev/pytest-cov#418
cov = config.pluginmanager.get_plugin('_cov')
cov.options.no_cov = True
if cov.cov_controller:
cov.cov_controller.pause()
if sys.version_info < (3,):
collect_ignore.append('setuptools/lib2to3_ex.py')
collect_ignore.append('setuptools/_imp.py')
......
Porting from Distutils
======================
Setuptools and the PyPA have a `stated goal <https://github.com/pypa/packaging-problems/issues/127>`_ to make Setuptools the reference API for distutils.
Since the 49.1.2 release, Setuptools includes a local, vendored copy of distutils (from late copies of CPython) that is disabled by default. To enable the use of this copy of distutils when invoking setuptools, set the enviroment variable:
SETUPTOOLS_USE_DISTUTILS=local
This behavior is planned to become the default.
Prefer Setuptools
-----------------
As Distutils is deprecated, any usage of functions or objects from distutils is similarly discouraged, and Setuptools aims to replace or deprecate all such uses. This section describes the recommended replacements.
``distutils.core.setup`` → ``setuptools.setup``
``distutils.cmd.Command`` → ``setuptools.Command``
``distutils.log`` → (no replacement yet)
``distutils.version.*`` → ``packaging.version.*``
If a project relies on uses of ``distutils`` that do not have a suitable replacement above, please search the `Setuptools issue tracker <https://github.com/pypa/setuptools/issues/>`_ and file a request, describing the use-case so that Setuptools' maintainers can investigate. Please provide enough detail to help the maintainers understand how distutils is used, what value it provides, and why that behavior should be supported.
.. image:: https://raw.githubusercontent.com/pypa/setuptools/master/docs/logo/banner%201%20line%20color.svg
Documentation
=============
......@@ -18,4 +15,5 @@ Documentation content:
development
roadmap
Deprecated: Easy Install <easy_install>
distutils-legacy
history
![](setup_tools_logo_colour.svg)
### Design:
Setuptools logo designed in 2020 by [C.Rogers](crogersmedia.com) for the Setuptools project using the Free Open Source graphics editor [Inkscape](inkscape.org).
### Copyright:
Logo is (c) the Setuptools developers.
### Font:
The font used is the Open Font "Josefin Sans", which is available for free under the Open Font License (OFL).
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="199.66046"
inkscape:export-xdpi="199.66046"
inkscape:export-filename="/home/crogers/Dropbox/current_projects/floss_for_science_podcast/setuptools_logo/setup_tools_logo_colour_banner_1line_1000px.png"
sodipodi:docname="setup_tools_logo_colour_banner_1line.svg"
inkscape:version="1.0 (1.0+r73+1)"
id="svg8"
version="1.1"
viewBox="0 0 127.21598 34.281804"
height="34.281803mm"
width="127.21597mm">
<defs
id="defs2">
<linearGradient
id="linearGradient1362"
inkscape:collect="always">
<stop
id="stop1358"
offset="0"
style="stop-color:#336790;stop-opacity:1" />
<stop
id="stop1360"
offset="1"
style="stop-color:#396f9e;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1356">
<stop
style="stop-color:#ffd040;stop-opacity:1;"
offset="0"
id="stop1352" />
<stop
style="stop-color:#c59500;stop-opacity:1"
offset="1"
id="stop1354" />
</linearGradient>
<linearGradient
id="linearGradient1346"
inkscape:collect="always">
<stop
id="stop1342"
offset="0"
style="stop-color:#ffd040;stop-opacity:1;" />
<stop
id="stop1344"
offset="1"
style="stop-color:#c59500;stop-opacity:1" />
</linearGradient>
<linearGradient
gradientTransform="translate(-1.5091231)"
gradientUnits="userSpaceOnUse"
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
id="linearGradient1348"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
<linearGradient
gradientTransform="matrix(3.0856143,0,0,3.0856143,-977.53344,-249.20723)"
gradientUnits="userSpaceOnUse"
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
id="linearGradient1350"
xlink:href="#linearGradient1356"
inkscape:collect="always" />
<linearGradient
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1370.9942,-384.33468)"
inkscape:collect="always"
xlink:href="#linearGradient1356"
id="linearGradient1348-1"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796"
gradientUnits="userSpaceOnUse" />
<linearGradient
gradientTransform="translate(-0.09428005)"
y2="166.39952"
x2="425.11826"
y1="110.35148"
x1="383.75778"
gradientUnits="userSpaceOnUse"
id="linearGradient1389"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1086"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1227.377,-330.32486)"
x1="383.75778"
y1="110.35148"
x2="425.11826"
y2="166.39952" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1109"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-50.518893,20.912766)"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1362"
id="linearGradient1203"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-50.613405,20.912779)"
x1="372.85818"
y1="111.95531"
x2="360.05417"
y2="101.13023" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1356"
id="linearGradient1214"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.6691687,0,0,3.6691687,-1309.7068,-327.43974)"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1224"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2136807,0,0,1.2136807,-68.746066,-31.825309)"
x1="383.75778"
y1="110.35148"
x2="425.11826"
y2="166.39952" />
</defs>
<sodipodi:namedview
inkscape:snap-global="false"
inkscape:document-rotation="0"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox="true"
inkscape:window-maximized="1"
inkscape:window-y="27"
inkscape:window-x="0"
inkscape:window-height="1016"
inkscape:window-width="1920"
showgrid="false"
inkscape:current-layer="g1222"
inkscape:document-units="mm"
inkscape:cy="-45.136828"
inkscape:cx="193.79166"
inkscape:zoom="1.027839"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showguides="true"
inkscape:guide-bbox="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1"
transform="translate(-306.41189,-109.96025)">
<g
transform="translate(0.04622687,-0.80180859)"
id="g1399">
<g
id="g1222">
<path
transform="matrix(0.26458333,0,0,0.26458333,306.36566,110.76206)"
d="M 41.09375 106.27539 L 41.09375 110.1875 C 41.09375 115.6174 45.444915 119.96875 50.875 119.96875 L 51.103516 119.96875 C 56.533449 119.96875 60.858309 115.6208 60.884766 110.1875 L 60.884766 106.27539 L 41.09375 106.27539 z "
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1214);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.204;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
id="path857" />
<path
d="m 317.41596,115.74629 c -0.46489,0 -0.98563,0.0832 -1.50172,0.24081 -0.12901,0.0394 -0.25805,0.0832 -0.3855,0.13178 -0.12731,0.0485 -0.25339,0.10179 -0.37724,0.15916 -0.24798,0.11485 -0.48734,0.24713 -0.71003,0.39584 -0.22268,0.14871 -0.42823,0.31194 -0.61134,0.48886 -0.18311,0.17692 -0.34365,0.36771 -0.47645,0.57154 -0.13281,0.20383 -0.23778,0.42065 -0.30955,0.65009 -0.0179,0.0574 -0.0338,0.11524 -0.0475,0.17415 -0.0412,0.17688 -0.063,0.36038 -0.063,0.55087 0,0.9951 -0.0661,1.68959 -0.0661,3.6034 2.6e-4,0.0568 5.6e-4,0.82689 0.001,1.41128 0.6498,-0.91281 1.72602,-1.50843 2.93057,-1.50843 h 2.86701 v -0.89659 l 4.05092,-0.0155 2.64066,-0.0114 v -2.70319 c 0,-0.11518 -0.0109,-0.22887 -0.0315,-0.34004 v -5.2e-4 c -0.0103,-0.0555 -0.023,-0.11041 -0.0382,-0.16485 v -5.3e-4 c -0.0758,-0.27295 -0.21051,-0.53194 -0.39067,-0.77463 -0.0721,-0.0971 -0.15151,-0.19159 -0.2372,-0.28319 -0.25707,-0.2748 -0.57116,-0.52409 -0.91932,-0.7431 -0.11592,-0.0729 -0.23554,-0.14215 -0.35709,-0.20723 h -5.3e-4 c -0.24324,-0.13021 -0.49511,-0.24455 -0.74517,-0.34158 h -5.3e-4 c -0.12492,-0.0485 -0.24931,-0.0931 -0.37204,-0.13278 h -5.3e-4 c -0.36843,-0.11927 -0.72086,-0.19839 -1.02215,-0.23358 h -5.3e-4 c -0.10046,-0.0117 -0.19492,-0.0183 -0.28267,-0.0202 h -3.54292 z m 4.70411,2.31304 c 0.59472,0 1.07642,0.48221 1.07642,1.07693 0,0.59473 -0.48168,1.07642 -1.07642,1.07642 -0.59472,0 -1.07694,-0.48169 -1.07694,-1.07642 0,-0.59473 0.48222,-1.07694 1.07694,-1.07693 z m -7.0125,9.74514 -0.002,5.3e-4 c -0.85439,-6e-5 -1.5704,0.56504 -1.79937,1.34307 0.0126,0.0215 0.0231,0.0458 0.0362,0.0667 0.0578,0.0925 0.1198,0.17911 0.18552,0.26045 0.0657,0.0814 0.13527,0.15735 0.20774,0.22841 0.0724,0.071 0.14791,0.13739 0.22582,0.19895 0.15603,0.12328 0.32321,0.22767 0.49713,0.31523 h 5.3e-4 c 0.26075,0.13124 0.53596,0.2246 0.8077,0.28474 0.17147,0.0379 0.34092,0.0617 0.5054,0.0749 0.009,7.4e-4 0.0191,0.002 0.0284,0.003 0.0867,0.006 0.17149,0.009 0.25425,0.009 l 0.92707,0.002 -0.001,-0.79633 v -0.01 c 0.002,-0.0307 0.003,-0.066 0.004,-0.10336 5e-5,-1.04029 -0.83662,-1.87746 -1.87689,-1.8774 z m 8.6155,0.4656 c -0.64896,0.0113 -1.21136,0.54677 -1.2113,1.18391 v 0.3514 2.6603 h -0.0181 l -0.001,0.0951 -6.12521,0.0134 c -0.24235,0.0162 -0.4773,0.0149 -0.70435,-0.005 -0.22705,-0.0198 -0.446,-0.0574 -0.65629,-0.11317 -0.21028,-0.0558 -0.41204,-0.12982 -0.6041,-0.22169 -0.19205,-0.0919 -0.37437,-0.20174 -0.54674,-0.3297 -0.43857,-0.32558 -0.6956,-0.93934 -0.99994,-1.47846 v 3.82199 c 0,0.0727 0.002,0.14482 0.007,0.21601 0.005,0.0712 0.0112,0.14125 0.0202,0.21084 v 5.2e-4 c 0.0179,0.139 0.0446,0.27483 0.0791,0.40722 v 5.2e-4 c 0.069,0.26491 0.1701,0.51618 0.29817,0.75293 0.0641,0.11856 0.13478,0.2331 0.21188,0.34417 v 5.2e-4 c 0.23101,0.33272 0.51767,0.63144 0.84284,0.89194 0.10842,0.0869 0.22126,0.16895 0.33745,0.2465 0.23238,0.15509 0.47858,0.29119 0.73277,0.40669 0.2542,0.1155 0.5161,0.21041 0.7798,0.28319 0.26369,0.0727 0.52925,0.12346 0.79013,0.15037 0.13045,0.0135 0.25961,0.0208 0.38705,0.0222 h 0.004 0.002 c 0.10334,0.003 0.95868,0.007 1.78697,0.008 0.69206,10e-4 1.20706,0.002 1.48829,0.002 0.0553,-4e-5 0.2728,8e-5 0.293,0 1.15473,-0.005 2.16001,-0.0931 3.03547,-0.26045 0.4703,-0.0899 0.90462,-0.20151 1.3007,-0.33745 0.38381,-0.13172 0.73108,-0.28624 1.04076,-0.46043 0.92918,-0.5226 1.5179,-1.22179 1.72445,-2.01022 0.0974,-0.71835 0.0707,-2.41111 0.0667,-3.59358 v -0.002 c 0.004,-1.07228 0.007,-1.20598 0.008,-1.3162 h -0.0253 l -0.002,-0.14779 -3.13314,0.015 -0.004,-0.62476 c -2e-5,-0.65702 -0.5269,-1.18388 -1.1839,-1.18391 h -0.002 c -0.006,-5e-5 -0.0141,-4e-5 -0.0191,0 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1203);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.588079;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
id="path1185" />
<path
d="m 320.69357,123.18993 v 0.014 h -4.8948 c -1.66007,0 -3.01858,1.32715 -2.98638,2.98018 v 0.004 1.25987 1.82004 c 0.22102,-1.13301 1.09696,-2.04967 2.29289,-2.05052 h 0.002 c 1.35724,9.8e-4 2.46504,1.10697 2.46497,2.46445 0,0.0448 -0.002,0.0932 -0.006,0.14469 l 0.002,-0.0212 0.004,2.07222 h 4.35168 v -2.07067 -0.35347 c -9e-5,-0.97613 0.82874,-1.75627 1.79265,-1.77147 h 0.002 c 0.009,-8e-5 0.0184,-7e-5 0.0274,0 0.97328,10e-4 1.7684,0.7961 1.76941,1.7694 v 0.0357 l 2.51767,-0.0119 v -0.12505 h 0.0119 v -6.16035 h -2.65462 c -0.17114,0.80057 -0.79979,1.44313 -1.64641,1.44332 -0.84657,-1.9e-4 -1.47321,-0.64281 -1.64434,-1.44332 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1109);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.588079;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
id="path1105" />
<path
d="m 337.48857,123.28851 c -0.75916,0.0241 -1.37827,0.24756 -1.85773,0.6711 -0.47147,0.41552 -0.70685,0.96335 -0.70685,1.6426 0,0.46347 0.11567,0.85115 0.34746,1.16281 0.23175,0.30365 0.50698,0.54294 0.82663,0.71874 0.32763,0.17581 0.73557,0.35559 1.22302,0.53939 0.52741,0.20776 0.93471,0.43198 1.22238,0.67171 0.29567,0.23174 0.44343,0.54688 0.44343,0.94643 0,0.47146 -0.17586,0.82712 -0.52747,1.06685 -0.34361,0.23972 -0.74699,0.36 -1.21047,0.36 -0.35959,0 -0.74727,-0.0764 -1.16281,-0.2283 -0.41553,-0.15982 -0.77117,-0.35137 -1.06684,-0.57513 l -0.51492,0.92322 c 0.37559,0.26371 0.811,0.48337 1.30643,0.65917 0.49545,0.16782 1.01062,0.2515 1.54603,0.2515 0.57534,0 1.07482,-0.10788 1.49834,-0.32361 0.43152,-0.21577 0.76297,-0.51128 0.99471,-0.88685 0.23174,-0.37559 0.3481,-0.7953 0.3481,-1.25876 0,-0.51143 -0.10389,-0.93051 -0.31172,-1.25815 -0.19976,-0.33561 -0.4554,-0.59579 -0.76705,-0.77959 -0.30365,-0.19178 -0.67955,-0.36765 -1.12704,-0.52747 -0.59932,-0.22375 -1.06284,-0.44733 -1.39049,-0.67107 -0.31964,-0.23175 -0.47917,-0.52727 -0.47917,-0.88686 0,-0.36757 0.13534,-0.65523 0.40704,-0.863 0.27968,-0.21576 0.65559,-0.32364 1.12706,-0.32364 0.31165,0 0.64313,0.0517 0.99473,0.15554 0.3516,0.1039 0.68307,0.23987 0.99472,0.40769 l 0.44405,-0.89877 c -0.79912,-0.46347 -1.66664,-0.69555 -2.60157,-0.69555 z m 6.23109,0.0483 v 8.66585 h 5.80147 v -1.12643 h -4.6393 v -2.67308 h 3.99205 v -1.11451 h -3.99205 v -2.63733 h 4.47123 v -1.1145 z m 8.77184,0 v 1.1145 h 2.2654 v 7.55135 h 1.16217 v -7.55135 h 2.32561 v -1.1145 z m 9.08292,0 v 5.63339 c 0,0.61531 0.1399,1.16251 0.41958,1.64198 0.28768,0.47147 0.67928,0.83952 1.17472,1.10322 0.49543,0.25571 1.04267,0.3832 1.64199,0.3832 0.60731,0 1.15907,-0.12749 1.65451,-0.3832 0.49544,-0.2637 0.88705,-0.63175 1.17473,-1.10322 0.28766,-0.47947 0.4315,-1.02667 0.4315,-1.64198 v -5.63339 h -1.13899 v 5.59764 c 0,0.38357 -0.0915,0.73074 -0.27533,1.04239 -0.18379,0.31165 -0.4394,0.5555 -0.76705,0.73131 -0.31962,0.17578 -0.67982,0.26403 -1.07937,0.26403 -0.38357,0 -0.73466,-0.0882 -1.05431,-0.26403 -0.31165,-0.18381 -0.55943,-0.42764 -0.74322,-0.73131 -0.18379,-0.31165 -0.27597,-0.65882 -0.27597,-1.04239 v -5.59764 z m 10.4621,0 v 8.66585 h 1.1628 v -3.188 h 1.28261 c 0.66325,0 1.21046,-0.13206 1.64197,-0.39576 0.4395,-0.2637 0.75527,-0.60756 0.94705,-1.0311 0.19977,-0.42351 0.29979,-0.87855 0.29979,-1.36601 0,-0.84703 -0.26803,-1.50666 -0.80342,-1.97813 -0.5274,-0.47147 -1.26226,-0.70685 -2.20519,-0.70685 z m 1.1628,1.1145 h 1.34218 c 0.57534,0 0.99899,0.1641 1.27068,0.49173 0.2717,0.31964 0.40768,0.68706 0.40768,1.10259 0,0.23972 -0.0562,0.48751 -0.16809,0.74321 -0.1119,0.24773 -0.29951,0.45953 -0.56322,0.63535 -0.25571,0.17579 -0.5911,0.26342 -1.00662,0.26342 h -1.28261 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87613px;line-height:1.25;font-family:'Josefin Sans';-inkscape-font-specification:'Josefin Sans Bold';letter-spacing:1.30175px;fill:#376d9c;fill-opacity:1;stroke:none;stroke-width:0.299663"
id="path1059" />
<path
d="m 393.03224,123.26436 c -0.7991,0 -1.53788,0.20397 -2.21712,0.6115 -0.67124,0.39957 -1.20667,0.93891 -1.60623,1.61815 -0.39954,0.67924 -0.59958,1.4147 -0.59958,2.20581 0,0.81508 0.19547,1.56233 0.58703,2.24157 0.39956,0.67124 0.93955,1.20212 1.61878,1.59368 0.67924,0.39157 1.41802,0.58768 2.21712,0.58768 0.79109,0 1.52658,-0.19611 2.2058,-0.58768 0.68723,-0.39954 1.23053,-0.9389 1.63007,-1.61814 0.39954,-0.67923 0.59895,-1.418 0.59895,-2.21711 0,-0.79111 -0.20334,-1.52657 -0.61087,-2.20581 -0.39955,-0.67924 -0.93892,-1.21858 -1.61815,-1.61815 -0.67922,-0.40753 -1.41471,-0.6115 -2.2058,-0.6115 z m 11.85257,0 c -0.7991,0 -1.53851,0.20397 -2.21773,0.6115 -0.67126,0.39957 -1.20668,0.93891 -1.60624,1.61815 -0.39953,0.67924 -0.59895,1.4147 -0.59895,2.20581 0,0.81508 0.19549,1.56233 0.58704,2.24157 0.39955,0.67124 0.93891,1.20212 1.61815,1.59368 0.67922,0.39157 1.41863,0.58768 2.21773,0.58768 0.7911,0 1.52594,-0.19611 2.20519,-0.58768 0.68722,-0.39954 1.2305,-0.9389 1.63006,-1.61814 0.39955,-0.67923 0.59959,-1.418 0.59959,-2.21711 0,-0.79111 -0.20397,-1.52657 -0.61151,-2.20581 -0.39955,-0.67924 -0.93891,-1.21858 -1.61814,-1.61815 -0.67925,-0.40753 -1.41409,-0.6115 -2.20519,-0.6115 z m 19.32927,0.0483 c -0.75914,0.024 -1.37826,0.24756 -1.85773,0.67109 -0.47147,0.41553 -0.70747,0.96273 -0.70747,1.64196 0,0.46349 0.11567,0.85116 0.34747,1.16281 0.23173,0.30366 0.5076,0.54359 0.82726,0.71939 0.32763,0.1758 0.73556,0.35558 1.223,0.53938 0.52742,0.20776 0.93473,0.43135 1.2224,0.6711 0.29568,0.23172 0.44343,0.54748 0.44343,0.94704 0,0.47146 -0.17587,0.82712 -0.52747,1.06685 -0.34362,0.23973 -0.747,0.35937 -1.21047,0.35937 -0.35959,0 -0.74727,-0.0758 -1.16281,-0.22767 -0.41553,-0.15981 -0.77119,-0.35137 -1.06684,-0.57513 l -0.51556,0.92259 c 0.37559,0.26371 0.81099,0.484 1.30644,0.65981 0.49544,0.16782 1.01124,0.25149 1.54664,0.25149 0.57534,0 1.07482,-0.10789 1.49836,-0.32362 0.43151,-0.21575 0.76298,-0.51127 0.99471,-0.88684 0.23173,-0.37559 0.34745,-0.79529 0.34745,-1.25876 0,-0.51143 -0.10388,-0.93114 -0.3117,-1.25877 -0.19979,-0.33563 -0.4554,-0.59517 -0.76704,-0.77896 -0.30368,-0.19179 -0.67894,-0.36764 -1.12644,-0.52746 -0.59933,-0.22376 -1.06284,-0.44735 -1.39047,-0.6711 -0.31965,-0.23174 -0.4798,-0.52726 -0.4798,-0.88684 0,-0.3676 0.13597,-0.65525 0.40766,-0.86301 0.27969,-0.21575 0.65559,-0.32363 1.12707,-0.32363 0.31164,0 0.64312,0.0517 0.99471,0.15555 0.35161,0.10388 0.68307,0.23985 0.99471,0.40767 l 0.44343,-0.89939 c -0.7991,-0.46348 -1.66599,-0.69492 -2.60094,-0.69492 z m -43.8849,0.0477 v 1.11515 h 2.2654 v 7.55132 h 1.1628 v -7.55132 h 2.325 v -1.11515 z m 32.52403,0 v 8.66647 h 5.57382 v -1.12706 h -4.41101 v -7.53941 z m -19.82097,1.01917 c 0.59132,0 1.1346,0.14777 1.63006,0.44342 0.49543,0.29568 0.88704,0.69906 1.17471,1.21048 0.28768,0.51142 0.4315,1.0671 0.4315,1.66643 0,0.59933 -0.14382,1.15439 -0.4315,1.66581 -0.27968,0.50343 -0.66736,0.90352 -1.1628,1.19918 -0.48745,0.28768 -1.02682,0.43151 -1.61815,0.43151 -0.59133,0 -1.13854,-0.14776 -1.64198,-0.44343 -0.49544,-0.29566 -0.88705,-0.69574 -1.17472,-1.19917 -0.28767,-0.50344 -0.4315,-1.05064 -0.4315,-1.64198 0,-0.59933 0.1399,-1.15439 0.41958,-1.66581 0.28769,-0.51143 0.67928,-0.91544 1.17474,-1.2111 0.49544,-0.30365 1.03873,-0.45534 1.63006,-0.45534 z m 11.85257,0 c 0.59133,0 1.13461,0.14777 1.63006,0.44342 0.49543,0.29568 0.88705,0.69906 1.17472,1.21048 0.28767,0.51142 0.43151,1.0671 0.43151,1.66643 0,0.59933 -0.14384,1.15439 -0.43151,1.66581 -0.27968,0.50343 -0.66737,0.90352 -1.1628,1.19918 -0.48745,0.28768 -1.02681,0.43151 -1.61816,0.43151 -0.59133,0 -1.13853,-0.14776 -1.64198,-0.44343 -0.49543,-0.29566 -0.88704,-0.69574 -1.1747,-1.19917 -0.28768,-0.50344 -0.43151,-1.05064 -0.43151,-1.64198 0,-0.59933 0.1399,-1.15439 0.4196,-1.66581 0.28766,-0.51143 0.67926,-0.91544 1.17471,-1.2111 0.49544,-0.30365 1.03873,-0.45534 1.63006,-0.45534 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87613px;line-height:1.25;font-family:'Josefin Sans';-inkscape-font-specification:'Josefin Sans';font-variation-settings:normal;letter-spacing:1.30175px;vector-effect:none;fill:url(#linearGradient1224);fill-opacity:1;stroke:none;stroke-width:0.71374;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
id="path1070" />
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="318.51953"
inkscape:export-xdpi="318.51953"
inkscape:export-filename="/home/crogers/Dropbox/current_projects/floss_for_science_podcast/setuptools_logo/setup_tools_logo_colour_banner_2lines_1000px.png"
width="79.743927mm"
height="34.816189mm"
viewBox="0 0 79.743929 34.81619"
version="1.1"
id="svg8"
inkscape:version="1.0 (1.0+r73+1)"
sodipodi:docname="setup_tools_logo_colour_banner_2lines.svg">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient1362">
<stop
style="stop-color:#336790;stop-opacity:1"
offset="0"
id="stop1358" />
<stop
style="stop-color:#396f9e;stop-opacity:1"
offset="1"
id="stop1360" />
</linearGradient>
<linearGradient
id="linearGradient1356"
inkscape:collect="always">
<stop
id="stop1352"
offset="0"
style="stop-color:#ffd040;stop-opacity:1;" />
<stop
id="stop1354"
offset="1"
style="stop-color:#c59500;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1346">
<stop
style="stop-color:#ffd040;stop-opacity:1;"
offset="0"
id="stop1342" />
<stop
style="stop-color:#c59500;stop-opacity:1"
offset="1"
id="stop1344" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1348"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.5091231)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1356"
id="linearGradient1350"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0856143,0,0,3.0856143,-977.53344,-249.20723)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
id="linearGradient1348-1"
xlink:href="#linearGradient1356"
inkscape:collect="always"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1370.9942,-384.33468)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1389"
gradientUnits="userSpaceOnUse"
x1="383.75778"
y1="110.35148"
x2="425.11826"
y2="166.39952"
gradientTransform="translate(-0.09428005)" />
<linearGradient
y2="166.39952"
x2="425.11826"
y1="110.35148"
x1="383.75778"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1227.377,-330.32486)"
gradientUnits="userSpaceOnUse"
id="linearGradient1086"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
<linearGradient
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
gradientTransform="translate(-50.077801,19.854432)"
gradientUnits="userSpaceOnUse"
id="linearGradient1109"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
<linearGradient
y2="101.13023"
x2="360.05417"
y1="111.95531"
x1="372.85818"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1348.8391,-341.44002)"
gradientUnits="userSpaceOnUse"
id="linearGradient1203"
xlink:href="#linearGradient1362"
inkscape:collect="always" />
<linearGradient
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
gradientTransform="matrix(3.6691687,0,0,3.6691687,-1309.3337,-329.29191)"
gradientUnits="userSpaceOnUse"
id="linearGradient1214"
xlink:href="#linearGradient1356"
inkscape:collect="always" />
<linearGradient
y2="166.39952"
x2="425.11826"
y1="110.35148"
x1="383.75778"
gradientTransform="matrix(1.2047454,0,0,1.2047454,-111.70824,-25.690314)"
gradientUnits="userSpaceOnUse"
id="linearGradient1224"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
inkscape:guide-bbox="true"
showguides="true"
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.199673"
inkscape:cx="16.58134"
inkscape:cy="40.833582"
inkscape:document-units="mm"
inkscape:current-layer="g1222"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:bbox-paths="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:document-rotation="0"
inkscape:snap-global="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-306.75427,-109.39197)"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g1399"
transform="translate(0.04622687,-0.80180859)">
<g
id="g1222">
<path
transform="matrix(0.26458333,0,0,0.26458333,306.70804,110.19378)"
d="M 41.466797 104.42188 L 41.46875 108.33594 C 41.46875 113.76587 45.817962 118.11523 51.248047 118.11523 L 51.476562 118.11523 C 56.906534 118.11523 61.231356 113.76924 61.257812 108.33594 L 61.257812 104.42188 L 41.466797 104.42188 z "
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1214);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.204;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
id="path875" />
<path
id="path1185"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1203);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.22266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
d="M 42.136719 16.986328 C 40.379654 16.986328 38.411514 17.300793 36.460938 17.896484 C 35.973341 18.045398 35.485607 18.21096 35.003906 18.394531 C 34.522735 18.577838 34.046219 18.779262 33.578125 18.996094 C 32.640878 19.430172 31.736194 19.930134 30.894531 20.492188 C 30.052906 21.054241 29.276054 21.67117 28.583984 22.339844 C 27.891915 23.008518 27.285124 23.729619 26.783203 24.5 C 26.281244 25.270381 25.884538 26.089856 25.613281 26.957031 C 25.545628 27.173976 25.485373 27.392582 25.433594 27.615234 C 25.277877 28.283757 25.195312 28.977303 25.195312 29.697266 C 25.195312 33.458273 24.945312 36.083109 24.945312 43.316406 C 24.946295 43.531083 24.947442 46.441673 24.949219 48.650391 C 27.405156 45.2004 31.472761 42.949219 36.025391 42.949219 L 46.861328 42.949219 L 46.861328 39.560547 L 62.171875 39.501953 L 72.152344 39.458984 L 72.152344 29.242188 C 72.152344 28.806862 72.111061 28.377201 72.033203 27.957031 L 72.033203 27.955078 C 71.994274 27.745314 71.946121 27.537789 71.888672 27.332031 L 71.888672 27.330078 C 71.602184 26.298456 71.093029 25.319597 70.412109 24.402344 C 70.139605 24.035352 69.839493 23.678236 69.515625 23.332031 C 68.544022 22.293417 67.356896 21.351192 66.041016 20.523438 C 65.602893 20.24791 65.150808 19.986206 64.691406 19.740234 L 64.689453 19.740234 C 63.770121 19.248102 62.818156 18.815946 61.873047 18.449219 L 61.871094 18.449219 C 61.398842 18.265912 60.928705 18.097275 60.464844 17.947266 L 60.462891 17.947266 C 59.070361 17.496481 57.738343 17.197455 56.599609 17.064453 L 56.597656 17.064453 C 56.217965 17.020233 55.86095 16.995084 55.529297 16.988281 L 42.138672 16.988281 L 42.136719 16.986328 z M 59.916016 25.726562 C 62.163776 25.726562 63.986328 27.549114 63.986328 29.796875 C 63.986328 32.044673 62.163852 33.867188 59.916016 33.867188 C 57.668255 33.867188 55.845703 32.044673 55.845703 29.796875 C 55.845703 27.549077 57.668255 25.726525 59.916016 25.726562 z M 33.414062 62.560547 L 33.404297 62.5625 C 30.175106 62.562273 27.468914 64.698086 26.603516 67.638672 C 26.651138 67.719932 26.690723 67.811633 26.740234 67.890625 C 26.958691 68.240231 27.193016 68.567573 27.441406 68.875 C 27.689721 69.182654 27.95266 69.469708 28.226562 69.738281 C 28.5002 70.006628 28.785615 70.257567 29.080078 70.490234 C 29.669798 70.956175 30.301649 71.350705 30.958984 71.681641 L 30.960938 71.681641 C 31.946449 72.177666 32.986623 72.530512 34.013672 72.757812 C 34.661747 72.901057 35.302171 72.991126 35.923828 73.041016 C 35.957844 73.043812 35.9961 73.048955 36.03125 73.052734 C 36.358935 73.075412 36.679394 73.085938 36.992188 73.085938 L 40.496094 73.09375 L 40.492188 70.083984 L 40.492188 70.046875 C 40.499747 69.930844 40.504033 69.797453 40.507812 69.65625 C 40.508001 65.724445 37.345792 62.56032 33.414062 62.560547 z M 65.974609 64.320312 C 63.521847 64.363021 61.396258 66.386834 61.396484 68.794922 L 61.396484 70.123047 L 61.396484 80.177734 L 61.328125 80.177734 L 61.324219 80.537109 L 38.173828 80.587891 C 37.25786 80.649119 36.36986 80.642438 35.511719 80.568359 C 34.653577 80.493525 33.826047 80.351409 33.03125 80.140625 C 32.236491 79.929727 31.473943 79.64996 30.748047 79.302734 C 30.022189 78.955396 29.333118 78.540269 28.681641 78.056641 C 27.024053 76.826102 26.052605 74.506369 24.902344 72.46875 L 24.902344 86.914062 C 24.902344 87.188834 24.91079 87.461404 24.929688 87.730469 C 24.948585 87.999571 24.971844 88.264326 25.005859 88.527344 L 25.005859 88.529297 C 25.073513 89.054613 25.174294 89.567988 25.304688 90.068359 L 25.304688 90.070312 C 25.565475 91.071547 25.947597 92.021212 26.431641 92.916016 C 26.673908 93.364116 26.94102 93.797005 27.232422 94.216797 L 27.232422 94.21875 C 28.105531 95.476274 29.18898 96.605277 30.417969 97.589844 C 30.827745 97.918285 31.254216 98.228382 31.693359 98.521484 C 32.571646 99.107651 33.502173 99.622058 34.462891 100.05859 C 35.423647 100.49513 36.413495 100.85383 37.410156 101.12891 C 38.40678 101.40368 39.410481 101.59556 40.396484 101.69727 C 40.889524 101.74829 41.377712 101.77596 41.859375 101.78125 L 41.875 101.78125 L 41.882812 101.78125 C 42.273389 101.79259 45.506174 101.80872 48.636719 101.8125 C 51.252379 101.81628 53.198802 101.82031 54.261719 101.82031 C 54.470727 101.82016 55.292794 101.82061 55.369141 101.82031 C 59.733474 101.80141 63.532972 101.46844 66.841797 100.83594 C 68.619309 100.49616 70.260817 100.07434 71.757812 99.560547 C 73.208433 99.062708 74.520962 98.478668 75.691406 97.820312 C 79.203268 95.845131 81.428323 93.202549 82.208984 90.222656 C 82.57711 87.507633 82.476056 81.109803 82.460938 76.640625 L 82.460938 76.632812 C 82.476056 72.580101 82.486455 72.074783 82.490234 71.658203 L 82.394531 71.658203 L 82.386719 71.099609 L 70.544922 71.15625 L 70.53125 68.794922 C 70.531174 66.311697 68.53979 64.320426 66.056641 64.320312 L 66.048828 64.320312 C 66.026151 64.320124 65.99546 64.320161 65.976562 64.320312 L 65.974609 64.320312 z "
transform="matrix(0.26458333,0,0,0.26458333,306.70804,110.19378)" />
<path
id="path1105"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1109);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.588079;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
d="m 321.13467,122.13159 v 0.014 h -4.8948 c -1.66007,0 -3.01858,1.32715 -2.98638,2.98018 v 0.004 1.25987 1.82004 c 0.22102,-1.13301 1.09696,-2.04967 2.29289,-2.05052 h 0.002 c 1.35724,9.8e-4 2.46504,1.10697 2.46497,2.46445 0,0.0448 -0.002,0.0932 -0.006,0.14469 l 0.002,-0.0212 0.004,2.07222 h 4.35168 v -2.07067 -0.35347 c -9e-5,-0.97613 0.82874,-1.75627 1.79265,-1.77147 h 0.002 c 0.009,-8e-5 0.0184,-7e-5 0.0274,0 0.97328,10e-4 1.7684,0.7961 1.76941,1.7694 v 0.0357 l 2.51767,-0.0119 v -0.12505 h 0.0119 v -6.16035 h -2.65462 c -0.17114,0.80057 -0.79979,1.44313 -1.64641,1.44332 -0.84657,-1.9e-4 -1.47321,-0.64281 -1.64434,-1.44332 z" />
<path
id="path1059"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87613px;line-height:1.25;font-family:'Josefin Sans';-inkscape-font-specification:'Josefin Sans Bold';letter-spacing:1.30175px;fill:#376d9c;fill-opacity:1;stroke:none;stroke-width:0.297456"
d="m 336.64763,117.62189 c -0.75355,0.0239 -1.36812,0.24574 -1.84405,0.66615 -0.468,0.41247 -0.70163,0.95628 -0.70163,1.63052 0,0.46005 0.11481,0.84488 0.3449,1.15424 0.23004,0.30141 0.50325,0.53894 0.82054,0.71346 0.32522,0.17451 0.73015,0.35297 1.21401,0.53541 0.52353,0.20623 0.92784,0.42881 1.21339,0.66677 0.29348,0.23003 0.44016,0.54286 0.44016,0.93946 0,0.468 -0.17457,0.82102 -0.52358,1.059 -0.34109,0.23795 -0.7415,0.35735 -1.20157,0.35735 -0.35694,0 -0.74176,-0.0759 -1.15424,-0.22663 -0.41247,-0.15864 -0.76549,-0.34878 -1.05898,-0.57089 l -0.51114,0.91643 c 0.37282,0.26176 0.80502,0.47981 1.29681,0.65432 0.49181,0.16658 1.00318,0.24964 1.53464,0.24964 0.57111,0 1.06692,-0.1071 1.48732,-0.32124 0.42834,-0.21417 0.75735,-0.5075 0.98739,-0.88031 0.23003,-0.37282 0.34553,-0.78944 0.34553,-1.2495 0,-0.50767 -0.10312,-0.92365 -0.30941,-1.24888 -0.1983,-0.33314 -0.45206,-0.5914 -0.76141,-0.77385 -0.30142,-0.19036 -0.67455,-0.36494 -1.11876,-0.52358 -0.5949,-0.22211 -1.055,-0.44405 -1.38024,-0.66614 -0.31728,-0.23004 -0.47564,-0.52338 -0.47564,-0.88032 0,-0.36487 0.13435,-0.65042 0.40405,-0.85666 0.27762,-0.21417 0.65076,-0.32125 1.11876,-0.32125 0.30935,0 0.63838,0.0513 0.9874,0.1544 0.34901,0.10313 0.67804,0.2381 0.98739,0.40468 l 0.44078,-0.89215 c -0.79322,-0.46006 -1.65436,-0.69043 -2.58242,-0.69043 z m 6.18523,0.048 v 8.60205 h 5.75876 v -1.11814 h -4.60515 v -2.65339 h 3.96266 v -1.1063 h -3.96266 v -2.61792 h 4.43831 v -1.1063 z m 8.70726,0 v 1.1063 h 2.24872 v 7.49575 h 1.15361 v -7.49575 h 2.3085 v -1.1063 z m 9.01605,0 v 5.59192 c 0,0.61077 0.13887,1.15395 0.41649,1.62989 0.28556,0.46799 0.67428,0.83335 1.16607,1.0951 0.49179,0.25383 1.03499,0.38039 1.62989,0.38039 0.60284,0 1.15054,-0.12656 1.64235,-0.38039 0.49178,-0.26175 0.88051,-0.62711 1.16607,-1.0951 0.28555,-0.47594 0.42832,-1.01912 0.42832,-1.62989 v -5.59192 h -1.13059 v 5.55644 c 0,0.38074 -0.0908,0.72535 -0.27331,1.03471 -0.18243,0.30935 -0.43617,0.5514 -0.7614,0.72592 -0.31728,0.17449 -0.67483,0.26209 -1.07144,0.26209 -0.38074,0 -0.72924,-0.0876 -1.04654,-0.26209 -0.30935,-0.18245 -0.5553,-0.42449 -0.73774,-0.72592 -0.18244,-0.30936 -0.27393,-0.65397 -0.27393,-1.03471 v -5.55644 z m 10.38507,0 v 8.60205 h 1.15424 v -3.16453 h 1.27317 c 0.65837,0 1.20155,-0.13108 1.62988,-0.39284 0.43627,-0.26176 0.74971,-0.60309 0.94008,-1.02351 0.1983,-0.42039 0.29758,-0.87209 0.29758,-1.35595 0,-0.8408 -0.26605,-1.49558 -0.7975,-1.96358 -0.52352,-0.46799 -1.25296,-0.70164 -2.18896,-0.70164 z m 1.15424,1.1063 h 1.33231 c 0.57111,0 0.99162,0.16289 1.26132,0.48811 0.26969,0.31728 0.40467,0.682 0.40467,1.09447 0,0.23796 -0.0558,0.48392 -0.16684,0.73774 -0.11108,0.2459 -0.29731,0.45615 -0.55908,0.63067 -0.25383,0.1745 -0.58675,0.26148 -0.99921,0.26148 h -1.27317 z" />
<path
id="path1070"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87613px;line-height:1.25;font-family:'Josefin Sans';-inkscape-font-specification:'Josefin Sans';font-variation-settings:normal;letter-spacing:1.30175px;vector-effect:none;fill:url(#linearGradient1224);fill-opacity:1;stroke:none;stroke-width:0.708485;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
d="m 346.67032,128.25756 c -0.79322,0 -1.52656,0.20247 -2.2008,0.60701 -0.66629,0.39661 -1.19778,0.93199 -1.59439,1.60623 -0.3966,0.67423 -0.59518,1.40428 -0.59518,2.18957 0,0.80907 0.19405,1.55084 0.58272,2.22507 0.39662,0.6663 0.93263,1.19327 1.60685,1.58194 0.67424,0.38869 1.40758,0.58335 2.2008,0.58335 0.78527,0 1.51534,-0.19466 2.18957,-0.58335 0.68217,-0.3966 1.22146,-0.93199 1.61806,-1.60623 0.3966,-0.67422 0.59454,-1.40756 0.59454,-2.20078 0,-0.78529 -0.20184,-1.51534 -0.60637,-2.18957 -0.39661,-0.67424 -0.932,-1.20962 -1.60623,-1.60623 -0.67423,-0.40454 -1.4043,-0.60701 -2.18957,-0.60701 z m 11.76531,0 c -0.79321,0 -1.52718,0.20247 -2.2014,0.60701 -0.66631,0.39661 -1.1978,0.93199 -1.59441,1.60623 -0.39659,0.67423 -0.59455,1.40428 -0.59455,2.18957 0,0.80907 0.19405,1.55084 0.58273,2.22507 0.3966,0.6663 0.93199,1.19327 1.60623,1.58194 0.67422,0.38869 1.40819,0.58335 2.2014,0.58335 0.78528,0 1.51472,-0.19466 2.18895,-0.58335 0.68217,-0.3966 1.22145,-0.93199 1.61806,-1.60623 0.39661,-0.67422 0.59518,-1.40756 0.59518,-2.20078 0,-0.78529 -0.20247,-1.51534 -0.60701,-2.18957 -0.3966,-0.67424 -0.93199,-1.20962 -1.60623,-1.60623 -0.67423,-0.40454 -1.40367,-0.60701 -2.18895,-0.60701 z m 19.18697,0.048 c -0.75356,0.0237 -1.36812,0.24574 -1.84406,0.66614 -0.46799,0.41248 -0.70225,0.95565 -0.70225,1.62989 0,0.46006 0.11481,0.84488 0.3449,1.15424 0.23002,0.30143 0.50388,0.53958 0.82117,0.71409 0.32522,0.1745 0.73015,0.35296 1.21401,0.53541 0.52353,0.20623 0.92783,0.42818 1.21338,0.66615 0.2935,0.23002 0.44017,0.54346 0.44017,0.94008 0,0.46799 -0.17457,0.82102 -0.52358,1.05899 -0.34109,0.23796 -0.7415,0.35673 -1.20157,0.35673 -0.35694,0 -0.74176,-0.0753 -1.15424,-0.22599 -0.41247,-0.15864 -0.76551,-0.3488 -1.05898,-0.5709 l -0.51177,0.91579 c 0.37282,0.26177 0.80502,0.48045 1.29683,0.65495 0.49178,0.16658 1.00379,0.24965 1.53525,0.24965 0.57111,0 1.06691,-0.1071 1.48732,-0.32125 0.42833,-0.21415 0.75736,-0.50749 0.98738,-0.8803 0.23004,-0.37282 0.34491,-0.78944 0.34491,-1.2495 0,-0.50766 -0.10313,-0.92429 -0.30941,-1.24949 -0.19832,-0.33316 -0.45205,-0.5908 -0.7614,-0.77323 -0.30143,-0.19038 -0.67394,-0.36495 -1.11814,-0.52359 -0.59491,-0.2221 -1.05502,-0.44405 -1.38024,-0.66615 -0.31729,-0.23003 -0.47626,-0.52338 -0.47626,-0.88032 0,-0.36488 0.13497,-0.65042 0.40466,-0.85664 0.27762,-0.21417 0.65076,-0.32126 1.11876,-0.32126 0.30936,0 0.63839,0.0513 0.9874,0.1544 0.34902,0.10313 0.67804,0.23809 0.98739,0.40467 l 0.44016,-0.89276 c -0.79321,-0.46007 -1.65373,-0.6898 -2.58179,-0.6898 z m -43.56181,0.0473 v 1.10694 h 2.24872 v 7.49573 h 1.15424 v -7.49573 h 2.30787 v -1.10694 z m 32.28459,0 v 8.60267 h 5.53276 v -1.11876 h -4.37852 v -7.48391 z m -19.67506,1.01168 c 0.58697,0 1.12625,0.14667 1.61806,0.44015 0.49178,0.2935 0.88051,0.69391 1.16606,1.20157 0.28557,0.50765 0.42833,1.05924 0.42833,1.65416 0,0.59491 -0.14276,1.14589 -0.42833,1.65355 -0.27761,0.49971 -0.66245,0.89686 -1.15425,1.19035 -0.48385,0.28556 -1.01924,0.42832 -1.60622,0.42832 -0.58698,0 -1.13016,-0.14667 -1.62989,-0.44015 -0.49179,-0.29349 -0.88051,-0.69062 -1.16607,-1.19035 -0.28555,-0.49973 -0.42833,-1.0429 -0.42833,-1.62989 0,-0.59492 0.13887,-1.14589 0.4165,-1.65355 0.28556,-0.50766 0.67428,-0.90869 1.16608,-1.20218 0.49179,-0.30141 1.03108,-0.45198 1.61806,-0.45198 z m 11.76531,0 c 0.58698,0 1.12626,0.14667 1.61806,0.44015 0.49179,0.2935 0.88051,0.69391 1.16607,1.20157 0.28555,0.50765 0.42833,1.05924 0.42833,1.65416 0,0.59491 -0.14278,1.14589 -0.42833,1.65355 -0.27762,0.49971 -0.66245,0.89686 -1.15424,1.19035 -0.48386,0.28556 -1.01925,0.42832 -1.60624,0.42832 -0.58697,0 -1.13015,-0.14667 -1.62989,-0.44015 -0.49179,-0.29349 -0.88051,-0.69062 -1.16606,-1.19035 -0.28556,-0.49973 -0.42833,-1.0429 -0.42833,-1.62989 0,-0.59492 0.13887,-1.14589 0.4165,-1.65355 0.28555,-0.50766 0.67427,-0.90869 1.16607,-1.20218 0.49179,-0.30141 1.03109,-0.45198 1.61806,-0.45198 z" />
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="278.6048"
inkscape:export-xdpi="278.6048"
inkscape:export-filename="/home/crogers/Dropbox/current_projects/floss_for_science_podcast/setuptools_logo/setup_tools_logo_colour_1000px.png"
width="91.168571mm"
height="55.301708mm"
viewBox="0 0 91.168573 55.301709"
version="1.1"
id="svg8"
inkscape:version="1.0 (1.0+r73+1)"
sodipodi:docname="setup_tools_logo_colour.svg">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient1362">
<stop
style="stop-color:#336790;stop-opacity:1"
offset="0"
id="stop1358" />
<stop
style="stop-color:#396f9e;stop-opacity:1"
offset="1"
id="stop1360" />
</linearGradient>
<linearGradient
id="linearGradient1356"
inkscape:collect="always">
<stop
id="stop1352"
offset="0"
style="stop-color:#ffd040;stop-opacity:1;" />
<stop
id="stop1354"
offset="1"
style="stop-color:#c59500;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1346">
<stop
style="stop-color:#ffd040;stop-opacity:1;"
offset="0"
id="stop1342" />
<stop
style="stop-color:#c59500;stop-opacity:1"
offset="1"
id="stop1344" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1348"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.5091231)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1356"
id="linearGradient1350"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0856143,0,0,3.0856143,-977.53344,-249.20723)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
id="linearGradient1348-1"
xlink:href="#linearGradient1356"
inkscape:collect="always"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1370.9942,-384.33468)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1389"
gradientUnits="userSpaceOnUse"
x1="383.75778"
y1="110.35148"
x2="425.11826"
y2="166.39952"
gradientTransform="translate(-0.09428005)" />
<linearGradient
y2="166.39952"
x2="425.11826"
y1="110.35148"
x1="383.75778"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1227.377,-330.32486)"
gradientUnits="userSpaceOnUse"
id="linearGradient1086"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
<linearGradient
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1232.7244,-330.32486)"
gradientUnits="userSpaceOnUse"
id="linearGradient1109"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
<linearGradient
y2="101.13023"
x2="360.05417"
y1="111.95531"
x1="372.85818"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1233.0816,-330.32482)"
gradientUnits="userSpaceOnUse"
id="linearGradient1203"
xlink:href="#linearGradient1362"
inkscape:collect="always" />
<linearGradient
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
gradientTransform="matrix(3.6691687,0,0,3.6691687,-1193.5762,-318.17671)"
gradientUnits="userSpaceOnUse"
id="linearGradient1214"
xlink:href="#linearGradient1356"
inkscape:collect="always" />
<linearGradient
y2="166.39952"
x2="425.11826"
y1="110.35148"
x1="383.75778"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1227.377,-330.32486)"
gradientUnits="userSpaceOnUse"
id="linearGradient1224"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
inkscape:guide-bbox="true"
showguides="true"
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.2663142"
inkscape:cx="86.449428"
inkscape:cy="95.330447"
inkscape:document-units="mm"
inkscape:current-layer="g1222"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:bbox-paths="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:document-rotation="0"
inkscape:snap-global="false" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-324.69544,-86.596643)"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g1399"
transform="translate(0.04622687,-0.80180859)">
<g
id="g1222">
<path
transform="matrix(0.26458333,0,0,0.26458333,324.64921,87.398452)"
d="M 157.22461 115.5332 L 157.22461 119.45312 C 157.22461 124.88302 161.57577 129.23438 167.00586 129.23438 L 167.23438 129.23438 C 172.66435 129.23438 176.98917 124.88056 177.01562 119.44727 L 177.01562 115.5332 L 157.22461 115.5332 z "
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1214);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.204;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
id="path857" />
<path
id="path1185"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1203);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.22266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
d="M 157.89453 28.101562 C 156.13747 28.101562 154.16932 28.416144 152.21875 29.011719 C 151.73113 29.160579 151.24343 29.326299 150.76172 29.509766 C 150.28055 29.69309 149.80402 29.894526 149.33594 30.111328 C 148.39868 30.545437 147.49398 31.045372 146.65234 31.607422 C 145.81071 32.169472 145.03387 32.786407 144.3418 33.455078 C 143.64973 34.123749 143.04296 34.844857 142.54102 35.615234 C 142.03907 36.385612 141.64235 37.205095 141.37109 38.072266 C 141.30329 38.289055 141.24322 38.507821 141.19141 38.730469 C 141.0357 39.398984 140.95312 40.092553 140.95312 40.8125 C 140.95312 44.573508 140.70339 47.198354 140.70312 54.431641 C 140.70412 54.646352 140.70503 57.556916 140.70703 59.765625 C 143.16297 56.31562 147.23056 54.064453 151.7832 54.064453 L 162.61914 54.064453 L 162.61914 50.675781 L 177.92969 50.617188 L 187.91016 50.574219 L 187.91016 40.357422 C 187.91016 39.922086 187.86886 39.492428 187.79102 39.072266 L 187.79102 39.070312 C 187.75212 38.860555 187.70352 38.652989 187.64648 38.447266 L 187.64648 38.445312 C 187.36007 37.413698 186.85082 36.434828 186.16992 35.517578 C 185.89756 35.150678 185.59731 34.793472 185.27344 34.447266 C 184.30183 33.408647 183.1147 32.466413 181.79883 31.638672 C 181.36068 31.363057 180.90864 31.101451 180.44922 30.855469 L 180.44727 30.855469 C 179.52793 30.363325 178.57598 29.931176 177.63086 29.564453 L 177.62891 29.564453 C 177.15666 29.38134 176.68652 29.2127 176.22266 29.0625 L 176.2207 29.0625 C 174.82819 28.611709 173.49616 28.312696 172.35742 28.179688 L 172.35547 28.179688 C 171.97576 28.135388 171.61877 28.110206 171.28711 28.103516 L 157.89648 28.103516 L 157.89453 28.101562 z M 175.67383 36.841797 C 177.92159 36.841801 179.74414 38.664334 179.74414 40.912109 C 179.74414 43.159889 177.92166 44.982418 175.67383 44.982422 C 173.42607 44.982452 171.60352 43.159908 171.60352 40.912109 C 171.60352 38.664315 173.42607 36.841767 175.67383 36.841797 z M 149.16211 73.677734 C 145.93293 73.677517 143.22672 75.813325 142.36133 78.753906 C 142.40903 78.835146 142.44873 78.926859 142.49805 79.005859 C 142.71636 79.35532 142.95085 79.682808 143.19922 79.990234 C 143.44759 80.297665 143.71049 80.58492 143.98438 80.853516 C 144.25791 81.121714 144.54341 81.372808 144.83789 81.605469 C 145.42762 82.071399 146.05946 82.465911 146.7168 82.796875 L 146.71875 82.796875 C 147.70428 83.292896 148.74444 83.645741 149.77148 83.873047 C 150.41954 84.016422 151.06 84.106381 151.68164 84.15625 C 151.71704 84.15905 151.75384 84.165449 151.78906 84.167969 C 152.11693 84.191789 152.43721 84.203125 152.75 84.203125 L 156.25391 84.210938 L 156.25 81.201172 L 156.25 81.164062 C 156.258 81.047957 156.26307 80.91479 156.26367 80.773438 C 156.26386 76.841633 153.10165 73.677508 149.16992 73.677734 L 149.16211 73.677734 z M 181.73242 75.435547 C 179.27966 75.478107 177.15407 77.502068 177.1543 79.910156 L 177.1543 81.238281 L 177.1543 91.292969 L 177.08594 91.292969 L 177.08203 91.652344 L 153.93164 91.703125 C 153.01566 91.764475 152.12767 91.758334 151.26953 91.683594 C 150.4114 91.608854 149.58384 91.46679 148.78906 91.255859 C 147.99429 91.044929 147.23175 90.765193 146.50586 90.417969 C 145.77997 90.070745 145.09094 89.655494 144.43945 89.171875 C 142.78187 87.941336 141.81042 85.621603 140.66016 83.583984 L 140.66016 98.029297 C 140.66016 98.304276 140.66815 98.576661 140.68555 98.845703 C 140.70275 99.114757 140.72792 99.379584 140.76172 99.642578 L 140.76172 99.644531 C 140.82922 100.16985 140.93031 100.68325 141.06055 101.18359 L 141.06055 101.18555 C 141.32132 102.18678 141.70348 103.13645 142.1875 104.03125 C 142.42992 104.47937 142.69686 104.91221 142.98828 105.33203 L 142.98828 105.33398 C 143.86139 106.59149 144.94485 107.7205 146.17383 108.70508 C 146.58362 109.03338 147.01008 109.34362 147.44922 109.63672 C 148.32749 110.22291 149.25802 110.7373 150.21875 111.17383 C 151.17948 111.61035 152.16936 111.96907 153.16602 112.24414 C 154.16262 112.51903 155.16631 112.71076 156.15234 112.8125 C 156.64537 112.8634 157.13358 112.89108 157.61523 112.89648 L 157.63086 112.89648 L 157.63867 112.89648 C 158.02925 112.90778 161.26203 112.92413 164.39258 112.92773 C 167.00824 112.93173 168.95466 112.93655 170.01758 112.93555 C 170.22681 112.9354 171.04865 112.93585 171.125 112.93555 C 175.48934 112.91855 179.28887 112.58375 182.59766 111.95117 C 184.37517 111.61131 186.01669 111.18957 187.51367 110.67578 C 188.96429 110.17793 190.27679 109.59391 191.44727 108.93555 C 194.95912 106.96039 197.18421 104.31778 197.96484 101.33789 C 198.33297 98.62287 198.23191 92.225037 198.2168 87.755859 L 198.2168 87.748047 C 198.2319 83.695335 198.24229 83.190014 198.24609 82.773438 L 198.15039 82.773438 L 198.14258 82.214844 L 186.30078 82.271484 L 186.28711 79.910156 C 186.28703 77.426931 184.29565 75.43566 181.8125 75.435547 L 181.80469 75.435547 C 181.78089 75.435358 181.75132 75.435396 181.73242 75.435547 z "
transform="matrix(0.26458333,0,0,0.26458333,324.64921,87.398452)" />
<path
id="path1105"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1109);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.22266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
d="m 170.2832,56.234375 v 0.05273 h -18.5 c -6.27431,0 -11.40881,5.016 -11.28711,11.263672 v 0.01563 4.761719 6.878906 c 0.83532,-4.282242 4.14597,-7.746787 8.66602,-7.75 h 0.008 c 5.12969,0.0037 9.31667,4.18382 9.31641,9.314453 0,0.169437 -0.008,0.35223 -0.0234,0.546875 l 0.008,-0.08008 0.0156,7.832031 h 16.44726 v -7.826171 -1.335938 c -3.4e-4,-3.68931 3.13227,-6.637864 6.77539,-6.695312 h 0.008 c 0.034,-3.03e-4 0.0695,-2.65e-4 0.10351,0 3.67854,0.0042 6.68372,3.008885 6.6875,6.6875 v 0.134765 l 9.51563,-0.04492 v -0.472656 h 0.0449 V 56.234375 h -10.0332 c -0.64683,3.025776 -3.02284,5.45436 -6.22266,5.455078 -3.19963,-7.18e-4 -5.56805,-2.429528 -6.21484,-5.455078 z"
transform="matrix(0.26458333,0,0,0.26458333,324.64921,87.398452)" />
<path
id="path1059"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87613px;line-height:1.25;font-family:'Josefin Sans';-inkscape-font-specification:'Josefin Sans Bold';letter-spacing:1.30175px;fill:#376d9c;fill-opacity:1;stroke:none;stroke-width:0.93318"
d="m 37.679688,152.23047 c -2.364045,0.0747 -4.292067,0.77094 -5.785157,2.08984 -1.468195,1.29401 -2.201172,3.00004 -2.201172,5.11524 0,1.4433 0.360394,2.65058 1.082032,3.62109 0.721663,0.94561 1.578817,1.6908 2.574218,2.23828 1.020271,0.54745 2.290635,1.10732 3.808594,1.67969 1.642406,0.64698 2.910792,1.34524 3.806641,2.0918 0.920718,0.72166 1.380859,1.70304 1.380859,2.94726 0,1.4682 -0.547649,2.57571 -1.642578,3.32227 -1.070035,0.74653 -2.326205,1.12109 -3.769531,1.12109 -1.119799,0 -2.327085,-0.23814 -3.621094,-0.71094 -1.294009,-0.49771 -2.401522,-1.09424 -3.322266,-1.79101 l -1.603515,2.875 c 1.169587,0.82121 2.525506,1.50528 4.068359,2.05273 1.542854,0.52259 3.147178,0.78321 4.814453,0.78321 1.791698,0 3.347112,-0.33592 4.666016,-1.00782 1.343773,-0.67187 2.375993,-1.59213 3.097656,-2.76172 0.721638,-1.16958 1.083985,-2.47662 1.083985,-3.91992 0,-1.59264 -0.323699,-2.8977 -0.970704,-3.91797 -0.62211,-1.04514 -1.418164,-1.85536 -2.388672,-2.42773 -0.945612,-0.59722 -2.116203,-1.14489 -3.509765,-1.64258 -1.866331,-0.69679 -3.309782,-1.39307 -4.330078,-2.08984 -0.995377,-0.72167 -1.492188,-1.64192 -1.492188,-2.76172 0,-1.14469 0.421493,-2.0405 1.267578,-2.6875 0.870955,-0.6719 2.041571,-1.00781 3.509766,-1.00781 0.970507,0 2.002727,0.16087 3.097656,0.48437 1.094929,0.3235 2.127149,0.74695 3.097657,1.26953 l 1.382812,-2.79883 c -2.488491,-1.44332 -5.190066,-2.16601 -8.101562,-2.16601 z m 19.404296,0.15039 v 26.98633 h 18.066407 v -3.50781 H 60.703125 v -8.32422 h 12.431641 v -3.47071 H 60.703125 v -8.21289 h 13.923828 v -3.4707 z m 27.316407,0 v 3.4707 h 7.054687 v 23.51563 h 3.619141 v -23.51563 h 7.242191 v -3.4707 z m 28.285159,0 v 17.54297 c 0,1.91612 0.43568,3.62019 1.30664,5.11328 0.89585,1.46819 2.11535,2.61436 3.6582,3.43555 1.54285,0.79632 3.24693,1.19336 5.11328,1.19336 1.89125,0 3.60949,-0.39704 5.15235,-1.19336 1.54285,-0.82119 2.76235,-1.96736 3.6582,-3.43555 0.89585,-1.49309 1.34375,-3.19716 1.34375,-5.11328 v -17.54297 h -3.54688 v 17.43164 c 0,1.19448 -0.28507,2.27561 -0.85742,3.24609 -0.57234,0.97051 -1.36837,1.72987 -2.38867,2.27735 -0.99538,0.54745 -2.11708,0.82226 -3.36133,0.82226 -1.19445,0 -2.2878,-0.27481 -3.2832,-0.82226 -0.97051,-0.57235 -1.74211,-1.33171 -2.31445,-2.27735 -0.57235,-0.97048 -0.85938,-2.05161 -0.85938,-3.24609 v -17.43164 z m 32.58007,0 v 26.98633 h 3.6211 v -9.92774 h 3.99414 c 2.06544,0 3.76951,-0.41123 5.11328,-1.23242 1.36867,-0.82119 2.35198,-1.89203 2.94922,-3.21094 0.62211,-1.31887 0.93359,-2.73592 0.93359,-4.2539 0,-2.63779 -0.83467,-4.69196 -2.50195,-6.16016 -1.64238,-1.46819 -3.93077,-2.20117 -6.86719,-2.20117 z m 3.6211,3.4707 h 4.17969 c 1.79169,0 3.11094,0.51098 3.95703,1.53125 0.84606,0.9954 1.26953,2.13961 1.26953,3.4336 0,0.74655 -0.17507,1.51815 -0.52344,2.31445 -0.3484,0.77143 -0.93271,1.43104 -1.75391,1.97852 -0.79632,0.54745 -1.84075,0.82031 -3.13476,0.82031 h -3.99414 z"
transform="matrix(0.26458333,0,0,0.26458333,324.64921,87.398452)" />
<path
id="path1070"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87613px;line-height:1.25;font-family:'Josefin Sans';-inkscape-font-specification:'Josefin Sans';font-variation-settings:normal;letter-spacing:1.30175px;vector-effect:none;fill:url(#linearGradient1224);fill-opacity:1;stroke:none;stroke-width:2.22266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
d="m 210.64844,152.64062 c -2.48847,0 -4.7891,0.63519 -6.9043,1.9043 -2.09033,1.24425 -3.75771,2.92386 -5.00195,5.03906 -1.24422,2.1152 -1.86719,4.40555 -1.86719,6.86914 0,2.53823 0.60877,4.86527 1.82812,6.98047 1.24425,2.09033 2.92582,3.74354 5.04102,4.96289 2.1152,1.21936 4.41583,1.83008 6.9043,1.83008 2.46359,0 4.75394,-0.61072 6.86914,-1.83008 2.14009,-1.24424 3.83195,-2.92386 5.07617,-5.03906 1.24425,-2.1152 1.86523,-4.41583 1.86523,-6.9043 0,-2.46359 -0.63322,-4.75394 -1.90234,-6.86914 -1.24425,-2.1152 -2.92386,-3.79481 -5.03906,-5.03906 -2.1152,-1.26911 -4.40555,-1.9043 -6.86914,-1.9043 z m 36.91015,0 c -2.48846,0 -4.79105,0.63519 -6.90625,1.9043 -2.09033,1.24425 -3.7577,2.92386 -5.00195,5.03906 -1.24422,2.1152 -1.86523,4.40555 -1.86523,6.86914 0,2.53823 0.60877,4.86527 1.82812,6.98047 1.24422,2.09033 2.92384,3.74354 5.03906,4.96289 2.1152,1.21936 4.41779,1.83008 6.90625,1.83008 2.4636,0 4.75199,-0.61072 6.86719,-1.83008 2.14007,-1.24424 3.83193,-2.92386 5.07617,-5.03906 1.24425,-2.1152 1.86719,-4.41583 1.86719,-6.9043 0,-2.46359 -0.63518,-4.75394 -1.9043,-6.86914 -1.24424,-2.1152 -2.92386,-3.79481 -5.03906,-5.03906 -2.1152,-1.26911 -4.40359,-1.9043 -6.86719,-1.9043 z m 60.19336,0.1504 c -2.36404,0.0746 -4.29206,0.77096 -5.78515,2.08984 -1.4682,1.29401 -2.20313,2.99808 -2.20313,5.11328 0,1.44333 0.36037,2.65059 1.08203,3.62109 0.72164,0.94562 1.58077,1.69276 2.57618,2.24024 1.02027,0.54745 2.29063,1.10734 3.80859,1.67969 1.64241,0.647 2.91079,1.34328 3.80664,2.08984 0.92074,0.72164 1.38086,1.70497 1.38086,2.94922 0,1.46819 -0.54765,2.57571 -1.64258,3.32226 -1.07006,0.74654 -2.32623,1.11915 -3.76953,1.11914 -1.11982,10e-6 -2.32708,-0.23616 -3.62109,-0.70898 -1.29401,-0.49769 -2.40155,-1.09425 -3.32227,-1.79102 l -1.60547,2.87305 c 1.16959,0.82119 2.52551,1.50721 4.06836,2.05469 1.54285,0.52258 3.14913,0.7832 4.81641,0.7832 1.79169,0 3.34711,-0.33591 4.66601,-1.00781 1.34378,-0.67187 2.376,-1.59213 3.09766,-2.76172 0.72166,-1.16959 1.08203,-2.47659 1.08203,-3.91992 0,-1.59262 -0.3237,-2.89965 -0.9707,-3.91992 -0.62214,-1.04517 -1.41817,-1.85344 -2.38868,-2.42578 -0.94561,-0.59722 -2.11427,-1.14487 -3.50781,-1.64258 -1.86635,-0.69677 -3.3098,-1.39308 -4.33008,-2.08985 -0.9954,-0.72166 -1.49414,-1.64192 -1.49414,-2.76171 0,-1.14472 0.42345,-2.0405 1.26953,-2.6875 0.87096,-0.67188 2.04155,-1.00782 3.50977,-1.00782 0.97051,0 2.00275,0.16088 3.09766,0.48438 1.09493,0.3235 2.12715,0.74695 3.09765,1.26953 l 1.38086,-2.80078 c -2.48846,-1.44333 -5.18809,-2.16406 -8.09961,-2.16406 z m -136.66211,0.14843 v 3.47266 h 7.05469 v 23.51562 h 3.62109 v -23.51562 h 7.24024 v -3.47266 z m 101.28321,0 v 26.98828 h 17.35742 v -3.50976 h -13.73633 v -23.47852 z m -61.72461,3.17383 c 1.84146,0 3.53332,0.46014 5.07617,1.38086 1.54285,0.92074 2.76235,2.17691 3.6582,3.76953 0.89588,1.59264 1.34375,3.3231 1.34375,5.18945 0,1.86636 -0.44787,3.59489 -1.34375,5.1875 -0.87095,1.56773 -2.07824,2.81364 -3.62109,3.73438 -1.51796,0.89585 -3.19758,1.34375 -5.03906,1.34375 -1.84147,0 -3.54554,-0.46012 -5.11328,-1.38086 -1.54286,-0.92072 -2.76236,-2.16663 -3.65821,-3.73437 -0.89585,-1.56773 -1.34375,-3.2718 -1.34375,-5.11329 0,-1.86635 0.43566,-3.59488 1.30664,-5.1875 0.89585,-1.59261 2.11535,-2.85074 3.65821,-3.77148 1.54285,-0.94561 3.23471,-1.41797 5.07617,-1.41797 z m 36.91015,0 c 1.84147,0 3.53332,0.46014 5.07618,1.38086 1.54285,0.92074 2.76235,2.17691 3.6582,3.76953 0.89585,1.59264 1.34375,3.3231 1.34375,5.18945 0,1.86636 -0.4479,3.59489 -1.34375,5.1875 -0.87096,1.56773 -2.07824,2.81364 -3.62109,3.73438 -1.51796,0.89585 -3.19758,1.34375 -5.03907,1.34375 -1.84146,0 -3.54553,-0.46012 -5.11328,-1.38086 -1.54285,-0.92072 -2.76235,-2.16663 -3.6582,-3.73437 -0.89585,-1.56773 -1.34375,-3.2718 -1.34375,-5.11329 0,-1.86635 0.43566,-3.59488 1.30664,-5.1875 0.89585,-1.59261 2.11535,-2.85074 3.6582,-3.77148 1.54286,-0.94561 3.23471,-1.41797 5.07617,-1.41797 z"
transform="matrix(0.26458333,0,0,0.26458333,324.64921,87.398452)" />
</g>
</g>
</g>
</svg>
922c129c-9f4c-4831-b632-c7f43be6feb0
\ No newline at end of file
<p>
The idea of this typeface is to be geometric, elegant, with a vintage feeling, for use at larger sizes.
It is inspired by geometric sans serif designs from the 1920s.
The x-height is half way from baseline to cap height, an unusual proportion.
</p>
<p>
There is a sister family, <a href="https://fonts.google.com/specimen/Josefin+Slab">Josefin Slab</a>
</p>
name: "Josefin Sans"
designer: "Santiago Orozco"
license: "OFL"
category: "SANS_SERIF"
date_added: "2010-11-17"
fonts {
name: "Josefin Sans"
style: "normal"
weight: 100
filename: "JosefinSans-Thin.ttf"
post_script_name: "JosefinSans-Thin"
full_name: "Josefin Sans Thin"
copyright: "Copyright 2010 The Josefin Sans Project Authors (https://github.com/ThomasJockin/JosefinSansFont-master), with Reserved Font Name \"Josefin Sans\"."
}
fonts {
name: "Josefin Sans"
style: "italic"
weight: 100
filename: "JosefinSans-ThinItalic.ttf"
post_script_name: "JosefinSans-ThinItalic"
full_name: "Josefin Sans Thin Italic"
copyright: "Copyright 2010 The Josefin Sans Project Authors (https://github.com/ThomasJockin/JosefinSansFont-master), with Reserved Font Name \"Josefin Sans\"."
}
fonts {
name: "Josefin Sans"
style: "normal"
weight: 300
filename: "JosefinSans-Light.ttf"
post_script_name: "JosefinSans-Light"
full_name: "Josefin Sans Light"
copyright: "Copyright 2010 The Josefin Sans Project Authors (https://github.com/ThomasJockin/JosefinSansFont-master), with Reserved Font Name \"Josefin Sans\"."
}
fonts {
name: "Josefin Sans"
style: "italic"
weight: 300
filename: "JosefinSans-LightItalic.ttf"
post_script_name: "JosefinSans-LightItalic"
full_name: "Josefin Sans Light Italic"
copyright: "Copyright 2010 The Josefin Sans Project Authors (https://github.com/ThomasJockin/JosefinSansFont-master), with Reserved Font Name \"Josefin Sans\"."
}
fonts {
name: "Josefin Sans"
style: "normal"
weight: 400
filename: "JosefinSans-Regular.ttf"
post_script_name: "JosefinSans-Regular"
full_name: "Josefin Sans Regular"
copyright: "Copyright 2010 The Josefin Sans Project Authors (https://github.com/ThomasJockin/JosefinSansFont-master), with Reserved Font Name \"Josefin Sans\"."
}
fonts {
name: "Josefin Sans"
style: "italic"
weight: 400
filename: "JosefinSans-Italic.ttf"
post_script_name: "JosefinSans-Italic"
full_name: "Josefin Sans Italic"
copyright: "Copyright 2010 The Josefin Sans Project Authors (https://github.com/ThomasJockin/JosefinSansFont-master), with Reserved Font Name \"Josefin Sans\"."
}
fonts {
name: "Josefin Sans"
style: "normal"
weight: 600
filename: "JosefinSans-SemiBold.ttf"
post_script_name: "JosefinSans-SemiBold"
full_name: "Josefin Sans SemiBold"
copyright: "Copyright 2010 The Josefin Sans Project Authors (https://github.com/ThomasJockin/JosefinSansFont-master), with Reserved Font Name \"Josefin Sans\"."
}
fonts {
name: "Josefin Sans"
style: "italic"
weight: 600
filename: "JosefinSans-SemiBoldItalic.ttf"
post_script_name: "JosefinSans-SemiBoldItalic"
full_name: "Josefin Sans SemiBold Italic"
copyright: "Copyright 2010 The Josefin Sans Project Authors (https://github.com/ThomasJockin/JosefinSansFont-master), with Reserved Font Name \"Josefin Sans\"."
}
fonts {
name: "Josefin Sans"
style: "normal"
weight: 700
filename: "JosefinSans-Bold.ttf"
post_script_name: "JosefinSans-Bold"
full_name: "Josefin Sans Bold"
copyright: "Copyright 2010 The Josefin Sans Project Authors (https://github.com/ThomasJockin/JosefinSansFont-master), with Reserved Font Name \"Josefin Sans\"."
}
fonts {
name: "Josefin Sans"
style: "italic"
weight: 700
filename: "JosefinSans-BoldItalic.ttf"
post_script_name: "JosefinSans-BoldItalic"
full_name: "Josefin Sans Bold Italic"
copyright: "Copyright 2010 The Josefin Sans Project Authors (https://github.com/ThomasJockin/JosefinSansFont-master), with Reserved Font Name \"Josefin Sans\"."
}
subsets: "latin"
subsets: "latin-ext"
subsets: "menu"
subsets: "vietnamese"
Copyright (c) 2010, Santiago Orozco (hi@typemade.mx)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="35.414169mm"
height="35.414169mm"
viewBox="0 0 35.41417 35.414171"
version="1.1"
id="svg8"
inkscape:version="1.0 (1.0+r73+1)"
sodipodi:docname="setup_tools_logo_symbol_colour.svg">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient1362">
<stop
style="stop-color:#336790;stop-opacity:1"
offset="0"
id="stop1358" />
<stop
style="stop-color:#396f9e;stop-opacity:1"
offset="1"
id="stop1360" />
</linearGradient>
<linearGradient
id="linearGradient1356"
inkscape:collect="always">
<stop
id="stop1352"
offset="0"
style="stop-color:#ffd040;stop-opacity:1;" />
<stop
id="stop1354"
offset="1"
style="stop-color:#c59500;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1346">
<stop
style="stop-color:#ffd040;stop-opacity:1;"
offset="0"
id="stop1342" />
<stop
style="stop-color:#c59500;stop-opacity:1"
offset="1"
id="stop1344" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1348"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.5091231)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1356"
id="linearGradient1350"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0856143,0,0,3.0856143,-977.53344,-249.20723)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
id="linearGradient1348-1"
xlink:href="#linearGradient1356"
inkscape:collect="always"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1370.9942,-384.33468)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1389"
gradientUnits="userSpaceOnUse"
x1="383.75778"
y1="110.35148"
x2="425.11826"
y2="166.39952"
gradientTransform="translate(-0.09428005)" />
<linearGradient
y2="166.39952"
x2="425.11826"
y1="110.35148"
x1="383.75778"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1227.377,-330.32486)"
gradientUnits="userSpaceOnUse"
id="linearGradient1086"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
<linearGradient
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
gradientTransform="matrix(1.1629019,0,0,1.1629019,-107.42277,2.2004727)"
gradientUnits="userSpaceOnUse"
id="linearGradient1109"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
<linearGradient
y2="101.13023"
x2="360.05417"
y1="111.95531"
x1="372.85818"
gradientTransform="matrix(4.3952198,0,0,4.3952198,-1561.6542,-408.39072)"
gradientUnits="userSpaceOnUse"
id="linearGradient1203"
xlink:href="#linearGradient1362"
inkscape:collect="always" />
<linearGradient
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
gradientTransform="matrix(4.2668833,0,0,4.2668833,-1515.7133,-394.26365)"
gradientUnits="userSpaceOnUse"
id="linearGradient1214"
xlink:href="#linearGradient1356"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
inkscape:guide-bbox="true"
showguides="true"
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.199673"
inkscape:cx="40.150021"
inkscape:cy="40.606501"
inkscape:document-units="mm"
inkscape:current-layer="g1222"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:bbox-paths="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:document-rotation="0"
inkscape:snap-global="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-305.70123,-109.45205)"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g1399"
transform="translate(0.04622687,-0.80180859)">
<g
id="g1222">
<path
transform="matrix(0.26458333,0,0,0.26458333,305.655,110.25386)"
d="M 55.140625 110.10156 L 55.140625 114.65625 C 55.140625 120.97071 60.201017 126.03125 66.515625 126.03125 L 66.773438 126.03125 C 73.087932 126.03125 78.118201 120.97468 78.148438 114.65625 L 78.148438 110.10156 L 55.140625 110.10156 z "
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1214);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
id="path854" />
<path
id="path1185"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1203);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.58474;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
d="M 55.914062 8.4238281 C 53.870774 8.4238281 51.582774 8.7898612 49.314453 9.4824219 C 48.747448 9.6555242 48.179304 9.8491835 47.619141 10.0625 C 47.059582 10.275665 46.507256 10.509549 45.962891 10.761719 C 44.87295 11.266475 43.820581 11.848322 42.841797 12.501953 C 41.863088 13.155547 40.959109 13.872791 40.154297 14.650391 C 39.349484 15.428028 38.644219 16.266248 38.060547 17.162109 C 37.476837 18.057971 37.014658 19.011078 36.699219 20.019531 C 36.620605 20.271626 36.550329 20.526221 36.490234 20.785156 C 36.309195 21.562567 36.214844 22.367837 36.214844 23.205078 C 36.214844 27.578747 35.923828 30.631366 35.923828 39.042969 C 35.924962 39.292796 35.92626 42.677565 35.927734 45.246094 C 38.783734 41.234087 43.514307 38.617188 48.808594 38.617188 L 61.408203 38.617188 L 61.408203 34.675781 L 79.212891 34.607422 L 90.820312 34.556641 L 90.820312 22.675781 C 90.820312 22.169514 90.771971 21.670258 90.681641 21.181641 L 90.681641 21.179688 C 90.636286 20.935908 90.580192 20.694322 90.513672 20.455078 L 90.513672 20.453125 C 90.180318 19.253465 89.588686 18.115524 88.796875 17.048828 C 88.480151 16.622044 88.130536 16.20533 87.753906 15.802734 C 86.624016 14.594911 85.243108 13.499679 83.712891 12.537109 C 83.203373 12.216605 82.678767 11.912988 82.144531 11.626953 L 82.140625 11.626953 C 81.071548 11.054657 79.964321 10.551444 78.865234 10.125 L 78.863281 10.125 C 78.314078 9.9118346 77.767968 9.7154786 77.228516 9.5410156 L 77.226562 9.5410156 C 75.607186 9.0167952 74.058608 8.6703211 72.734375 8.515625 L 72.730469 8.515625 C 72.288944 8.4642234 71.873982 8.4337183 71.488281 8.4257812 L 55.916016 8.4257812 L 55.914062 8.4238281 z M 76.589844 18.589844 C 79.203765 18.589844 81.324219 20.708344 81.324219 23.322266 C 81.324219 25.936225 79.203878 28.054688 76.589844 28.054688 C 73.975922 28.054688 71.857422 25.936225 71.857422 23.322266 C 71.857422 20.708269 73.975922 18.589806 76.589844 18.589844 z M 45.773438 61.419922 L 45.759766 61.423828 C 42.00454 61.423564 38.857937 63.908522 37.851562 67.328125 C 37.907122 67.422613 37.952317 67.529251 38.009766 67.621094 C 38.26375 68.027658 38.53734 68.408119 38.826172 68.765625 C 39.114928 69.123546 39.419743 69.457191 39.738281 69.769531 C 40.056517 70.08172 40.388044 70.373955 40.730469 70.644531 C 41.416264 71.186364 42.151568 71.644428 42.916016 72.029297 L 42.917969 72.029297 C 44.064035 72.606128 45.274381 73.016948 46.46875 73.28125 C 47.222388 73.447927 47.966505 73.553501 48.689453 73.611328 C 48.729138 73.614579 48.773634 73.617314 48.814453 73.621094 C 49.195543 73.64755 49.567899 73.662109 49.931641 73.662109 L 54.007812 73.669922 L 54.003906 70.167969 L 54.003906 70.125 C 54.011465 69.990071 54.013925 69.833953 54.021484 69.669922 C 54.021711 65.097638 50.345683 61.419657 45.773438 61.419922 z M 83.636719 63.466797 L 83.636719 63.46875 C 80.784385 63.518262 78.312235 65.87151 78.3125 68.671875 L 78.3125 70.216797 L 78.3125 81.910156 L 78.232422 81.910156 L 78.228516 82.328125 L 51.306641 82.386719 C 50.241456 82.457774 49.208884 82.45021 48.210938 82.363281 C 47.213029 82.276352 46.250455 82.112101 45.326172 81.867188 C 44.401964 81.621896 43.516032 81.296383 42.671875 80.892578 C 41.827793 80.48866 41.025184 80.005753 40.267578 79.443359 C 38.339943 78.012355 37.210659 75.31485 35.873047 72.945312 L 35.873047 89.744141 C 35.873047 90.063511 35.88162 90.380452 35.904297 90.693359 C 35.926974 91.006304 35.952502 91.313263 35.992188 91.619141 L 35.992188 91.621094 C 36.070802 92.231979 36.188285 92.830213 36.339844 93.412109 L 36.339844 93.414062 C 36.642962 94.578422 37.087468 95.682077 37.650391 96.722656 C 37.931965 97.24374 38.243159 97.748164 38.582031 98.236328 L 38.582031 98.238281 C 39.597364 99.700656 40.857919 101.01323 42.287109 102.1582 C 42.763632 102.54012 43.258841 102.90135 43.769531 103.24219 C 44.790911 103.92383 45.873006 104.52167 46.990234 105.0293 C 48.107501 105.53696 49.258939 105.95358 50.417969 106.27344 C 51.576961 106.59319 52.743992 106.81729 53.890625 106.93555 C 54.463979 106.99489 55.031671 107.02716 55.591797 107.0332 L 55.611328 107.0332 L 55.617188 107.0332 C 56.071373 107.04454 59.83214 107.06263 63.472656 107.06641 C 66.514382 107.07019 68.777615 107.07422 70.013672 107.07422 C 70.256695 107.07407 71.212 107.0746 71.300781 107.07422 C 76.376082 107.05154 80.794717 106.66522 84.642578 105.92969 C 86.70964 105.53454 88.618525 105.04278 90.359375 104.44531 C 92.046329 103.86636 93.57251 103.18749 94.933594 102.42188 C 99.017562 100.12494 101.60583 97.053226 102.51367 93.587891 C 102.94178 90.430587 102.82403 82.990197 102.80664 77.792969 L 102.80664 77.785156 C 102.82554 73.072274 102.83802 72.48446 102.8418 72 L 102.73047 72 L 102.72266 71.349609 L 88.951172 71.416016 L 88.931641 68.669922 C 88.931527 65.782174 86.616188 63.46691 83.728516 63.466797 L 83.720703 63.466797 C 83.694246 63.46657 83.65864 63.466608 83.636719 63.466797 z "
transform="matrix(0.26458333,0,0,0.26458333,305.655,110.25386)" />
<path
id="path1105"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient1109);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.683878;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000"
d="m 324.26094,121.13878 v 0.0163 h -5.69217 c -1.9305,0 -3.51031,1.54334 -3.47287,3.46566 v 0.005 1.4651 2.11653 c 0.25703,-1.31758 1.27566,-2.38356 2.66641,-2.38455 h 0.002 c 1.57834,0.001 2.8666,1.28729 2.86652,2.86591 0,0.0521 -0.002,0.10838 -0.007,0.16826 l 0.002,-0.0246 0.005,2.40979 h 5.06058 v -2.40799 -0.41105 c -1.1e-4,-1.13514 0.96374,-2.04237 2.08468,-2.06005 h 0.002 c 0.0105,-9e-5 0.0214,-8e-5 0.0319,0 1.13183,0.001 2.05648,0.92579 2.05766,2.05764 v 0.0415 l 2.9278,-0.0138 v -0.14542 h 0.0138 v -7.16389 h -3.08707 c -0.19901,0.93099 -0.93007,1.67822 -1.91461,1.67844 -0.98448,-2.2e-4 -1.7132,-0.74752 -1.91221,-1.67844 z" />
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="153.08401mm"
height="22.351141mm"
viewBox="0 0 153.08402 22.351142"
version="1.1"
id="svg8"
inkscape:version="1.0 (1.0+r73+1)"
sodipodi:docname="setup_tools_logotype_1line.svg">
<defs
id="defs2">
<linearGradient
id="linearGradient1356"
inkscape:collect="always">
<stop
id="stop1352"
offset="0"
style="stop-color:#ffd040;stop-opacity:1;" />
<stop
id="stop1354"
offset="1"
style="stop-color:#c59500;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1346">
<stop
style="stop-color:#ffd040;stop-opacity:1;"
offset="0"
id="stop1342" />
<stop
style="stop-color:#c59500;stop-opacity:1"
offset="1"
id="stop1344" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1348"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.5091231)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1356"
id="linearGradient1350"
x1="364.9838"
y1="103.99801"
x2="380.39404"
y2="119.1796"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0856143,0,0,3.0856143,-977.53344,-249.20723)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="119.1796"
x2="380.39404"
y1="103.99801"
x1="364.9838"
id="linearGradient1348-1"
xlink:href="#linearGradient1356"
inkscape:collect="always"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1370.9942,-384.33468)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1346"
id="linearGradient1389"
gradientUnits="userSpaceOnUse"
x1="383.75778"
y1="110.35148"
x2="425.11826"
y2="166.39952"
gradientTransform="translate(-0.09428005)" />
<linearGradient
y2="166.39952"
x2="425.11826"
y1="110.35148"
x1="383.75778"
gradientTransform="matrix(3.7795276,0,0,3.7795276,-1227.377,-330.32486)"
gradientUnits="userSpaceOnUse"
id="linearGradient1086"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
<linearGradient
y2="166.39952"
x2="425.11826"
y1="110.35148"
x1="383.75778"
gradientTransform="matrix(1.8992984,0,0,1.8992984,-333.12947,-121.42763)"
gradientUnits="userSpaceOnUse"
id="linearGradient1224"
xlink:href="#linearGradient1346"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
inkscape:guide-bbox="true"
showguides="true"
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.822847"
inkscape:cx="195.14044"
inkscape:cy="-7.273579"
inkscape:document-units="mm"
inkscape:current-layer="g1222"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:bbox-paths="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:document-rotation="0"
inkscape:snap-global="false" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-293.37152,-116.6327)"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g1399"
transform="translate(0.04622687,-0.80180859)">
<g
id="g1222">
<g
transform="translate(-0.36620442,0.40535408)"
id="g873">
<path
d="m 302.59023,121.31122 c -1.18799,0.0376 -2.15686,0.38742 -2.90718,1.0502 -0.7378,0.65026 -1.10613,1.50759 -1.10613,2.57053 0,0.72529 0.181,1.33198 0.54375,1.81968 0.36265,0.47519 0.79337,0.84965 1.29359,1.12478 0.51272,0.27512 1.15109,0.55646 1.9139,0.84409 0.82534,0.32512 1.46275,0.67602 1.91292,1.05117 0.46269,0.36265 0.69393,0.85582 0.69393,1.48107 0,0.7378 -0.27521,1.29435 -0.82544,1.66952 -0.53773,0.37513 -1.16898,0.56337 -1.89428,0.56337 -0.56273,0 -1.1694,-0.11965 -1.81968,-0.35728 -0.65026,-0.2501 -1.20682,-0.54986 -1.6695,-0.90002 l -0.80582,1.44476 c 0.58776,0.41268 1.26913,0.75644 2.04444,1.03155 0.77534,0.26261 1.58153,0.39357 2.41939,0.39357 0.90036,0 1.682,-0.16885 2.34478,-0.50645 0.67527,-0.33763 1.19397,-0.80008 1.55662,-1.38781 0.36266,-0.58776 0.54474,-1.24458 0.54474,-1.96986 0,-0.80035 -0.16258,-1.45616 -0.4878,-1.96887 -0.31262,-0.52521 -0.71267,-0.93237 -1.20037,-1.22 -0.47519,-0.3001 -1.06344,-0.57533 -1.76373,-0.82543 -0.93787,-0.35016 -1.66323,-0.70004 -2.17597,-1.05018 -0.5002,-0.36265 -0.74986,-0.82511 -0.74986,-1.38784 0,-0.57522 0.21181,-1.02539 0.63699,-1.35053 0.43767,-0.33764 1.02594,-0.50645 1.76374,-0.50645 0.48771,0 1.00642,0.0809 1.55665,0.24342 0.55023,0.16258 1.06894,0.37535 1.55665,0.63797 l 0.69489,-1.40649 c -1.25053,-0.72528 -2.60813,-1.08847 -4.07122,-1.08847 z m 9.75109,0.0756 v 13.56125 h 9.07878 v -1.76276 h -7.26009 v -4.18311 h 6.2472 v -1.7441 h -6.2472 v -4.12718 h 6.99706 v -1.7441 z m 13.72712,0 v 1.7441 h 3.54514 v 11.81715 h 1.81869 v -11.81715 h 3.63938 v -1.7441 z m 14.21394,0 v 8.81574 c 0,0.96289 0.21893,1.81923 0.6566,2.56954 0.45019,0.7378 1.06302,1.31379 1.83833,1.72645 0.77532,0.40016 1.63167,0.59968 2.56955,0.59968 0.95039,0 1.81384,-0.19952 2.58918,-0.59968 0.77531,-0.41266 1.38814,-0.98865 1.83833,-1.72645 0.45017,-0.75031 0.67525,-1.60665 0.67525,-2.56954 v -8.81574 h -1.78239 v 8.75981 c 0,0.60023 -0.14321,1.14353 -0.43088,1.63123 -0.28761,0.4877 -0.68762,0.86929 -1.20035,1.14442 -0.5002,0.27509 -1.06388,0.41319 -1.68914,0.41319 -0.60024,0 -1.14967,-0.13808 -1.64989,-0.41319 -0.4877,-0.28763 -0.87544,-0.66922 -1.16305,-1.14442 -0.28763,-0.4877 -0.43186,-1.031 -0.43186,-1.63123 v -8.75981 z m 16.37221,0 v 13.56125 h 1.81968 v -4.98892 h 2.00716 c 1.03793,0 1.89427,-0.20665 2.56955,-0.61933 0.68777,-0.41266 1.18191,-0.95077 1.48204,-1.61356 0.31262,-0.66276 0.46914,-1.37487 0.46914,-2.13768 0,-1.32554 -0.41944,-2.35781 -1.25728,-3.09561 -0.82534,-0.7378 -1.9753,-1.10615 -3.45093,-1.10615 z m 1.81968,1.7441 h 2.1004 c 0.90036,0 1.56331,0.25679 1.98849,0.7695 0.42518,0.5002 0.63797,1.0752 0.63797,1.72546 0,0.37515 -0.0879,0.76291 -0.26303,1.16305 -0.17511,0.38767 -0.46871,0.71913 -0.88139,0.99427 -0.40016,0.27509 -0.92501,0.41222 -1.57528,0.41222 h -2.00716 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87613px;line-height:1.25;font-family:'Josefin Sans';-inkscape-font-specification:'Josefin Sans Bold';letter-spacing:1.30175px;fill:#376d9c;fill-opacity:1;stroke:none;stroke-width:0.468944"
id="path1059" />
<path
d="m 389.51096,121.27344 c -1.25052,0 -2.40664,0.31919 -3.46958,0.95696 -1.05043,0.62526 -1.88833,1.46929 -2.51359,2.53224 -0.62525,1.06294 -0.93831,2.21388 -0.93831,3.4519 0,1.27551 0.30592,2.44491 0.91867,3.50785 0.62527,1.05042 1.4703,1.8812 2.53323,2.49395 1.06294,0.61277 2.21906,0.91966 3.46958,0.91966 1.238,0 2.38895,-0.30689 3.4519,-0.91966 1.07544,-0.62525 1.92564,-1.4693 2.55089,-2.53224 0.62525,-1.06293 0.9373,-2.21905 0.9373,-3.46956 0,-1.23802 -0.31821,-2.38896 -0.95595,-3.4519 -0.62527,-1.06295 -1.46932,-1.90698 -2.53224,-2.53224 -1.06295,-0.63777 -2.2139,-0.95696 -3.4519,-0.95696 z m 18.54818,0 c -1.25051,0 -2.40762,0.31919 -3.47055,0.95696 -1.05044,0.62526 -1.88834,1.46929 -2.5136,2.53224 -0.62523,1.06294 -0.93731,2.21388 -0.93731,3.4519 0,1.27551 0.30592,2.44491 0.91867,3.50785 0.62525,1.05042 1.4693,1.8812 2.53224,2.49395 1.06293,0.61277 2.22004,0.91966 3.47055,0.91966 1.238,0 2.38797,-0.30689 3.45092,-0.91966 1.07544,-0.62525 1.92562,-1.4693 2.55089,-2.53224 0.62526,-1.06293 0.93831,-2.21905 0.93831,-3.46956 0,-1.23802 -0.3192,-2.38896 -0.95697,-3.4519 -0.62524,-1.06295 -1.46929,-1.90698 -2.53223,-2.53224 -1.06295,-0.63777 -2.21292,-0.95696 -3.45092,-0.95696 z m 30.24853,0.0756 c -1.18799,0.0374 -2.15686,0.38742 -2.90718,1.05018 -0.7378,0.65028 -1.10712,1.5066 -1.10712,2.56954 0,0.7253 0.18101,1.33198 0.54375,1.81968 0.36264,0.4752 0.79437,0.85066 1.29459,1.12577 0.51271,0.27511 1.15108,0.55646 1.9139,0.84409 0.82536,0.32512 1.46274,0.67503 1.91292,1.05019 0.4627,0.36264 0.69392,0.85678 0.69392,1.48205 0,0.7378 -0.27521,1.29435 -0.82543,1.66952 -0.53773,0.37515 -1.16898,0.56238 -1.89429,0.56238 -0.56272,0 -1.16939,-0.11871 -1.81968,-0.35627 -0.65026,-0.2501 -1.20683,-0.54989 -1.6695,-0.90004 l -0.8068,1.44377 c 0.58776,0.41268 1.26913,0.75742 2.04446,1.03253 0.77531,0.26262 1.5825,0.39358 2.42035,0.39358 0.90037,0 1.682,-0.16885 2.34478,-0.50645 0.67528,-0.33762 1.194,-0.80008 1.55663,-1.38782 0.36265,-0.58776 0.54375,-1.24455 0.54375,-1.96986 0,-0.80032 -0.16258,-1.45714 -0.4878,-1.96983 -0.31264,-0.52524 -0.71265,-0.9314 -1.20035,-1.21901 -0.47521,-0.30013 -1.06247,-0.57534 -1.76276,-0.82544 -0.9379,-0.35015 -1.66326,-0.70006 -2.17597,-1.0502 -0.50022,-0.36265 -0.75083,-0.82511 -0.75083,-1.38783 0,-0.57524 0.21278,-1.02539 0.63795,-1.35052 0.43768,-0.33764 1.02593,-0.50646 1.76375,-0.50646 0.4877,0 1.00642,0.0809 1.55664,0.24341 0.55023,0.16258 1.06895,0.37536 1.55663,0.63797 l 0.69393,-1.40745 c -1.25052,-0.72531 -2.60713,-1.08748 -4.07024,-1.08748 z m -68.67582,0.0746 v 1.74509 h 3.54514 v 11.81714 h 1.81968 v -11.81714 h 3.63839 v -1.74509 z m 50.89712,0 v 13.56223 h 8.72249 v -1.76375 h -6.90281 v -11.79848 z m -31.01801,1.59492 c 0.92537,0 1.77556,0.23124 2.55089,0.69391 0.77531,0.4627 1.38814,1.09395 1.83831,1.89428 0.45021,0.80033 0.67528,1.66992 0.67528,2.60781 0,0.93789 -0.22507,1.80652 -0.67528,2.60685 -0.43766,0.78781 -1.04435,1.41391 -1.81968,1.8766 -0.7628,0.45019 -1.60685,0.67526 -2.53224,0.67526 -0.92538,0 -1.78171,-0.23122 -2.56954,-0.69391 -0.77531,-0.46269 -1.38814,-1.08878 -1.83833,-1.8766 -0.45017,-0.78783 -0.67526,-1.64415 -0.67526,-2.56955 0,-0.93789 0.21893,-1.80651 0.65661,-2.60684 0.45019,-0.80033 1.06301,-1.43257 1.83835,-1.89525 0.77531,-0.47519 1.62551,-0.71256 2.55089,-0.71256 z m 18.54818,0 c 0.92538,0 1.77556,0.23124 2.55089,0.69391 0.77532,0.4627 1.38814,1.09395 1.83834,1.89428 0.45017,0.80033 0.67525,1.66992 0.67525,2.60781 0,0.93789 -0.22508,1.80652 -0.67525,2.60685 -0.43768,0.78781 -1.04437,1.41391 -1.81968,1.8766 -0.76282,0.45019 -1.60687,0.67526 -2.53226,0.67526 -0.92538,0 -1.7817,-0.23122 -2.56954,-0.69391 -0.77532,-0.46269 -1.38814,-1.08878 -1.83832,-1.8766 -0.45019,-0.78783 -0.67527,-1.64415 -0.67527,-2.56955 0,-0.93789 0.21893,-1.80651 0.65662,-2.60684 0.45017,-0.80033 1.063,-1.43257 1.83833,-1.89525 0.77532,-0.47519 1.62552,-0.71256 2.55089,-0.71256 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87613px;line-height:1.25;font-family:'Josefin Sans';-inkscape-font-specification:'Josefin Sans';font-variation-settings:normal;letter-spacing:1.30175px;vector-effect:none;fill:url(#linearGradient1224);fill-opacity:1;stroke:none;stroke-width:1.11694;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
id="path1070" />
</g>
</g>
</g>
</g>
</svg>
......@@ -16,7 +16,7 @@ formats = zip
[metadata]
name = setuptools
version = 49.1.3
version = 49.3.0
description = Easily download, build, install, upgrade, and uninstall Python packages
author = Python Packaging Authority
author_email = distutils-sig@python.org
......@@ -72,6 +72,7 @@ tests =
paver; python_version>="3.6"
futures; python_version=="2.7"
pip>=19.1 # For proper file:// URLs support.
jaraco.envs
docs =
# Keep these in sync with docs/requirements.txt
......
......@@ -5,8 +5,10 @@ Distutils setup file, used to install or test 'setuptools'
import os
import sys
import textwrap
import setuptools
from setuptools.command.install import install
here = os.path.dirname(__file__)
......@@ -81,8 +83,48 @@ def pypi_link(pkg_filename):
return '/'.join(parts)
class install_with_pth(install):
"""
Custom install command to install a .pth file for distutils patching.
This hack is necessary because there's no standard way to install behavior
on startup (and it's debatable if there should be one). This hack (ab)uses
the `extra_path` behavior in Setuptools to install a `.pth` file with
implicit behavior on startup to give higher precedence to the local version
of `distutils` over the version from the standard library.
Please do not replicate this behavior.
"""
_pth_name = 'distutils-precedence'
_pth_contents = textwrap.dedent("""
import os
var = 'SETUPTOOLS_USE_DISTUTILS'
enabled = os.environ.get(var, 'local') == 'local'
enabled and __import__('_distutils_hack').add_shim()
""").lstrip().replace('\n', '; ')
def initialize_options(self):
install.initialize_options(self)
self.extra_path = self._pth_name, self._pth_contents
def finalize_options(self):
install.finalize_options(self)
self._restore_install_lib()
def _restore_install_lib(self):
"""
Undo secondary effect of `extra_path` adding to `install_lib`
"""
suffix = os.path.relpath(self.install_lib, self.install_libbase)
if suffix.strip() == self._pth_contents.strip():
self.install_lib = self.install_libbase
setup_params = dict(
src_root=None,
cmdclass={'install': install_with_pth},
package_data=package_data,
entry_points={
"distutils.commands": [
......
"""Extensions to the 'distutils' for large or complex distributions"""
import os
from fnmatch import fnmatchcase
import functools
import os
import re
# Disabled for now due to: #2228, #2230
import setuptools.distutils_patch # noqa: F401
import _distutils_hack.override # noqa: F401
import distutils.core
import distutils.filelist
import re
from distutils.errors import DistutilsOptionError
from distutils.util import convert_path
from fnmatch import fnmatchcase
from ._deprecation_warning import SetuptoolsDeprecationWarning
......
......@@ -15,7 +15,9 @@ for older versions in distutils.msvc9compiler and distutils.msvccompiler.
import os
import subprocess
import winreg
import contextlib
with contextlib.suppress(ImportError):
import winreg
from distutils.errors import DistutilsExecError, DistutilsPlatformError, \
CompileError, LibError, LinkError
......@@ -501,7 +503,7 @@ class MSVCCompiler(CCompiler) :
log.debug("skipping %s (up-to-date)", output_filename)
def spawn(self, cmd):
env = dict(os.environ, path=self._paths)
env = dict(os.environ, PATH=self._paths)
return super().spawn(cmd, env=env)
# -- Miscellaneous methods -----------------------------------------
......
......@@ -906,8 +906,8 @@ int main (int argc, char **argv) {
def execute(self, func, args, msg=None, level=1):
execute(func, args, msg, self.dry_run)
def spawn(self, cmd):
spawn(cmd, dry_run=self.dry_run)
def spawn(self, cmd, **kwargs):
spawn(cmd, dry_run=self.dry_run, **kwargs)
def move_file(self, src, dst):
return move_file(src, dst, dry_run=self.dry_run)
......
......@@ -2,6 +2,7 @@
import sys
import unittest
import os
import threading
from distutils.errors import DistutilsPlatformError
from distutils.tests import support
......@@ -74,6 +75,42 @@ class msvccompilerTestCase(support.TempdirManager,
else:
raise unittest.SkipTest("VS 2015 is not installed")
class CheckThread(threading.Thread):
exc_info = None
def run(self):
try:
super().run()
except Exception:
self.exc_info = sys.exc_info()
def __bool__(self):
return not self.exc_info
class TestSpawn(unittest.TestCase):
def test_concurrent_safe(self):
"""
Concurrent calls to spawn should have consistent results.
"""
import distutils._msvccompiler as _msvccompiler
compiler = _msvccompiler.MSVCCompiler()
compiler._paths = "expected"
inner_cmd = 'import os; assert os.environ["PATH"] == "expected"'
command = ['python', '-c', inner_cmd]
threads = [
CheckThread(target=compiler.spawn, args=[command])
for n in range(100)
]
for thread in threads:
thread.start()
for thread in threads:
thread.join()
assert all(threads)
def test_suite():
return unittest.makeSuite(msvccompilerTestCase)
......
......@@ -138,7 +138,7 @@ def patch_for_msvc_specialized_compiler():
msvc = import_module('setuptools.msvc')
if platform.system() != 'Windows':
# Compilers only availables on Microsoft Windows
# Compilers only available on Microsoft Windows
return
def patch_params(mod_name, func_name):
......
......@@ -185,8 +185,8 @@ def setup_context(setup_dir):
temp_dir = os.path.join(setup_dir, 'temp')
with save_pkg_resources_state():
with save_modules():
hide_setuptools()
with save_path():
hide_setuptools()
with save_argv():
with override_temp(temp_dir):
with pushd(setup_dir):
......@@ -195,6 +195,15 @@ def setup_context(setup_dir):
yield
_MODULES_TO_HIDE = {
'setuptools',
'distutils',
'pkg_resources',
'Cython',
'_distutils_hack',
}
def _needs_hiding(mod_name):
"""
>>> _needs_hiding('setuptools')
......@@ -212,8 +221,8 @@ def _needs_hiding(mod_name):
>>> _needs_hiding('Cython')
True
"""
pattern = re.compile(r'(setuptools|pkg_resources|distutils|Cython)(\.|$)')
return bool(pattern.match(mod_name))
base_module = mod_name.split('.', 1)[0]
return base_module in _MODULES_TO_HIDE
def hide_setuptools():
......@@ -223,6 +232,10 @@ def hide_setuptools():
necessary to avoid issues such as #315 where setuptools upgrading itself
would fail to find a function declared in the metadata.
"""
_distutils_hack = sys.modules.get('_distutils_hack', None)
if _distutils_hack is not None:
_distutils_hack.remove_shim()
modules = filter(_needs_hiding, sys.modules)
_clear_modules(modules)
......
......@@ -10,3 +10,4 @@ pytest-cov>=2.5.1
paver; python_version>="3.6"
futures; python_version=="2.7"
pip>=19.1 # For proper file:// URLs support.
jaraco.envs
import os
import sys
import functools
import subprocess
import platform
import pytest
import jaraco.envs
import path
IS_PYPY = '__pypy__' in sys.builtin_module_names
class VirtualEnv(jaraco.envs.VirtualEnv):
name = '.env'
def run(self, cmd, *args, **kwargs):
cmd = [self.exe(cmd[0])] + cmd[1:]
return subprocess.check_output(cmd, *args, cwd=self.root, **kwargs)
@pytest.fixture
def venv(tmpdir):
env = VirtualEnv()
env.root = path.Path(tmpdir)
env.req = os.getcwd()
return env.create()
def popen_text(call):
"""
Augment the Popen call with the parameters to ensure unicode text.
"""
return functools.partial(call, universal_newlines=True) \
if sys.version_info < (3, 7) else functools.partial(call, text=True)
def find_distutils(venv, imports='distutils', env=None, **kwargs):
py_cmd = 'import {imports}; print(distutils.__file__)'.format(**locals())
cmd = ['python', '-c', py_cmd]
if platform.system() == 'Windows':
env['SYSTEMROOT'] = os.environ['SYSTEMROOT']
return popen_text(venv.run)(cmd, env=env, **kwargs)
def test_distutils_stdlib(venv):
"""
Ensure stdlib distutils is used when appropriate.
"""
assert venv.name not in find_distutils(venv, env=dict()).split(os.sep)
def test_distutils_local_with_setuptools(venv):
"""
Ensure local distutils is used when appropriate.
"""
env = dict(SETUPTOOLS_USE_DISTUTILS='local')
loc = find_distutils(venv, imports='setuptools, distutils', env=env)
assert venv.name in loc.split(os.sep)
@pytest.mark.xfail('IS_PYPY', reason='pypy imports distutils on startup')
def test_distutils_local(venv):
"""
Even without importing, the setuptools-local copy of distutils is
preferred.
"""
env = dict(SETUPTOOLS_USE_DISTUTILS='local')
assert venv.name in find_distutils(venv, env=env).split(os.sep)
......@@ -27,10 +27,6 @@ extras =
tests
[testenv:pypy{,3}]
commands = pytest --no-cov {posargs}
[testenv:coverage]
description=Combine coverage data and create report
deps=coverage
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment