-
Notifications
You must be signed in to change notification settings - Fork 15
Conversation
|
||
from .sdlocalobjects import * | ||
|
||
from .sdlocalobjects import ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Making a note here that this is not how we format the imports in other SD projects, but we're using black
, and this is how it auto formats long imports.
0be65db
to
5f27f2e
Compare
5f27f2e
to
bb88969
Compare
sweet, mypy in CI 😍- @kushaldas what do you think of this one? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is only one small Pythonic change required, other wise looks good.
Here is the diff in the dependency.
$ diffoscope certifi-2018.10.15.tar.gz certifi-2018.11.29.tar.gz
|##########################################################################################################| 100% Time: 0:00:00
--- certifi-2018.10.15.tar.gz
+++ certifi-2018.11.29.tar.gz
├── metadata
│ @@ -1 +1 @@
│ -gzip compressed data, was "dist/certifi-2018.10.15.tar", last modified: Mon Oct 15 13:13:23 2018, max compression
│ +gzip compressed data, was "dist/certifi-2018.11.29.tar", last modified: Thu Nov 29 19:56:35 2018, max compression
│ --- certifi-2018.10.15.tar
├── +++ certifi-2018.11.29.tar
├── file list
│ │ @@ -1,18 +1,18 @@
│ │ -drwxr-xr-x 0 cory (502) staff (502) 0 2018-10-15 13:13:23.000000 certifi-2018.10.15/
│ │ --rw-r--r-- 0 cory (502) staff (502) 3000 2018-10-15 13:13:23.000000 certifi-2018.10.15/PKG-INFO
│ │ --rw-r--r-- 0 cory (502) staff (502) 1048 2015-04-23 18:12:52.000000 certifi-2018.10.15/LICENSE
│ │ --rw-r--r-- 0 cory (502) staff (502) 58 2018-01-18 20:27:24.000000 certifi-2018.10.15/MANIFEST.in
│ │ --rwxr-xr-x 0 cory (502) staff (502) 2269 2018-10-15 13:10:44.000000 certifi-2018.10.15/setup.py
│ │ -drwxr-xr-x 0 cory (502) staff (502) 0 2018-10-15 13:13:23.000000 certifi-2018.10.15/certifi/
│ │ --rw-r--r-- 0 cory (502) staff (502) 63 2018-10-15 13:12:17.000000 certifi-2018.10.15/certifi/__init__.py
│ │ --rw-r--r-- 0 cory (502) staff (502) 836 2018-01-18 20:27:24.000000 certifi-2018.10.15/certifi/core.py
│ │ --rw-r--r-- 0 cory (502) staff (502) 261241 2018-10-15 13:11:40.000000 certifi-2018.10.15/certifi/cacert.pem
│ │ --rw-r--r-- 0 cory (502) staff (502) 41 2015-04-23 18:12:52.000000 certifi-2018.10.15/certifi/__main__.py
│ │ --rw-r--r-- 0 cory (502) staff (502) 123 2018-10-15 13:13:23.000000 certifi-2018.10.15/setup.cfg
│ │ --rw-r--r-- 0 cory (502) staff (502) 1677 2018-01-18 20:27:24.000000 certifi-2018.10.15/README.rst
│ │ -drwxr-xr-x 0 cory (502) staff (502) 0 2018-10-15 13:13:23.000000 certifi-2018.10.15/certifi.egg-info/
│ │ --rw-r--r-- 0 cory (502) staff (502) 3000 2018-10-15 13:13:22.000000 certifi-2018.10.15/certifi.egg-info/PKG-INFO
│ │ --rw-r--r-- 0 cory (502) staff (502) 1 2018-10-15 13:13:22.000000 certifi-2018.10.15/certifi.egg-info/not-zip-safe
│ │ --rw-r--r-- 0 cory (502) staff (502) 278 2018-10-15 13:13:23.000000 certifi-2018.10.15/certifi.egg-info/SOURCES.txt
│ │ --rw-r--r-- 0 cory (502) staff (502) 8 2018-10-15 13:13:22.000000 certifi-2018.10.15/certifi.egg-info/top_level.txt
│ │ --rw-r--r-- 0 cory (502) staff (502) 1 2018-10-15 13:13:22.000000 certifi-2018.10.15/certifi.egg-info/dependency_links.txt
│ │ +drwxr-xr-x 0 cory (502) staff (502) 0 2018-11-29 19:56:35.000000 certifi-2018.11.29/
│ │ +-rw-r--r-- 0 cory (502) staff (502) 2763 2018-11-29 19:56:35.000000 certifi-2018.11.29/PKG-INFO
│ │ +-rw-r--r-- 0 cory (502) staff (502) 1048 2015-04-23 18:12:52.000000 certifi-2018.11.29/LICENSE
│ │ +-rw-r--r-- 0 cory (502) staff (502) 58 2018-01-18 20:27:24.000000 certifi-2018.11.29/MANIFEST.in
│ │ +-rwxr-xr-x 0 cory (502) staff (502) 2270 2018-11-29 19:55:18.000000 certifi-2018.11.29/setup.py
│ │ +drwxr-xr-x 0 cory (502) staff (502) 0 2018-11-29 19:56:35.000000 certifi-2018.11.29/certifi/
│ │ +-rw-r--r-- 0 cory (502) staff (502) 52 2018-11-29 19:56:04.000000 certifi-2018.11.29/certifi/__init__.py
│ │ +-rw-r--r-- 0 cory (502) staff (502) 288 2018-11-29 19:55:18.000000 certifi-2018.11.29/certifi/core.py
│ │ +-rw-r--r-- 0 cory (502) staff (502) 275834 2018-11-29 19:55:32.000000 certifi-2018.11.29/certifi/cacert.pem
│ │ +-rw-r--r-- 0 cory (502) staff (502) 41 2015-04-23 18:12:52.000000 certifi-2018.11.29/certifi/__main__.py
│ │ +-rw-r--r-- 0 cory (502) staff (502) 123 2018-11-29 19:56:35.000000 certifi-2018.11.29/setup.cfg
│ │ +-rw-r--r-- 0 cory (502) staff (502) 1463 2018-11-29 19:55:18.000000 certifi-2018.11.29/README.rst
│ │ +drwxr-xr-x 0 cory (502) staff (502) 0 2018-11-29 19:56:35.000000 certifi-2018.11.29/certifi.egg-info/
│ │ +-rw-r--r-- 0 cory (502) staff (502) 2763 2018-11-29 19:56:35.000000 certifi-2018.11.29/certifi.egg-info/PKG-INFO
│ │ +-rw-r--r-- 0 cory (502) staff (502) 1 2018-11-29 19:56:35.000000 certifi-2018.11.29/certifi.egg-info/not-zip-safe
│ │ +-rw-r--r-- 0 cory (502) staff (502) 278 2018-11-29 19:56:35.000000 certifi-2018.11.29/certifi.egg-info/SOURCES.txt
│ │ +-rw-r--r-- 0 cory (502) staff (502) 8 2018-11-29 19:56:35.000000 certifi-2018.11.29/certifi.egg-info/top_level.txt
│ │ +-rw-r--r-- 0 cory (502) staff (502) 1 2018-11-29 19:56:35.000000 certifi-2018.11.29/certifi.egg-info/dependency_links.txt
│ --- certifi-2018.10.15/README.rst
├── +++ certifi-2018.11.29/README.rst
│┄ Files similar despite different names (difference score: 50)
│ │ @@ -33,14 +33,11 @@
│ │ reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
│ │ bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
│ │ certificate from the same CA. Because Mozilla removed these certificates from
│ │ its bundle, ``certifi`` removed them as well.
│ │
│ │ In previous versions, ``certifi`` provided the ``certifi.old_where()`` function
│ │ to intentionally re-add the 1024-bit roots back into your bundle. This was not
│ │ -recommended in production and therefore was removed. To assist in migrating old
│ │ -code, the function ``certifi.old_where()`` continues to exist as an alias of
│ │ -``certifi.where()``. Please update your code to use ``certifi.where()``
│ │ -instead. ``certifi.old_where()`` will be removed in 2018.
│ │ +recommended in production and therefore was removed at the end of 2018.
│ │
│ │ -.. _`Certifi`: http://certifi.io/en/latest/
│ │ +.. _`Certifi`: https://certifi.io/en/latest/
│ │ .. _`Requests`: http://docs.python-requests.org/en/latest/
│ --- certifi-2018.10.15/setup.py
├── +++ certifi-2018.11.29/setup.py
│┄ Files similar despite different names (difference score: 6)
│ │ @@ -35,15 +35,15 @@
│ │ setup(
│ │ name='certifi',
│ │ version=VERSION,
│ │ description='Python package for providing Mozilla\'s CA Bundle.',
│ │ long_description=open('README.rst').read(),
│ │ author='Kenneth Reitz',
│ │ author_email='me@kennethreitz.com',
│ │ - url='http://certifi.io/',
│ │ + url='https://certifi.io/',
│ │ packages=[
│ │ 'certifi',
│ │ ],
│ │ package_dir={'certifi': 'certifi'},
│ │ package_data={'certifi': ['*.pem']},
│ │ # data_files=[('certifi', ['certifi/cacert.pem'])],
│ │ include_package_data=True,
│ --- certifi-2018.10.15/PKG-INFO
├── +++ certifi-2018.11.29/certifi.egg-info/PKG-INFO
│┄ Files similar despite different names (difference score: 34)
│ │ @@ -1,12 +1,12 @@
│ │ Metadata-Version: 1.1
│ │ Name: certifi
│ │ -Version: 2018.10.15
│ │ +Version: 2018.11.29
│ │ Summary: Python package for providing Mozilla's CA Bundle.
│ │ -Home-page: http://certifi.io/
│ │ +Home-page: https://certifi.io/
│ │ Author: Kenneth Reitz
│ │ Author-email: me@kennethreitz.com
│ │ License: MPL-2.0
│ │ Description: Certifi: Python SSL Certificates
│ │ ================================
│ │
│ │ `Certifi`_ is a carefully curated collection of Root Certificates for
│ │ @@ -41,20 +41,17 @@
│ │ reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
│ │ bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
│ │ certificate from the same CA. Because Mozilla removed these certificates from
│ │ its bundle, ``certifi`` removed them as well.
│ │
│ │ In previous versions, ``certifi`` provided the ``certifi.old_where()`` function
│ │ to intentionally re-add the 1024-bit roots back into your bundle. This was not
│ │ - recommended in production and therefore was removed. To assist in migrating old
│ │ - code, the function ``certifi.old_where()`` continues to exist as an alias of
│ │ - ``certifi.where()``. Please update your code to use ``certifi.where()``
│ │ - instead. ``certifi.old_where()`` will be removed in 2018.
│ │ + recommended in production and therefore was removed at the end of 2018.
│ │
│ │ - .. _`Certifi`: http://certifi.io/en/latest/
│ │ + .. _`Certifi`: https://certifi.io/en/latest/
│ │ .. _`Requests`: http://docs.python-requests.org/en/latest/
│ │
│ │ Platform: UNKNOWN
│ │ Classifier: Development Status :: 5 - Production/Stable
│ │ Classifier: Intended Audience :: Developers
│ │ Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
│ │ Classifier: Natural Language :: English
│ --- certifi-2018.10.15/certifi/cacert.pem
├── +++ certifi-2018.11.29/certifi/cacert.pem
│┄ Files similar despite different names (difference score: 6)
│ │ @@ -4264,7 +4264,249 @@
│ │ eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W
│ │ p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E
│ │ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T
│ │ rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV
│ │ 57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg
│ │ Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9
│ │ -----END CERTIFICATE-----
│ │ +
│ │ +# Issuer: CN=GTS Root R1 O=Google Trust Services LLC
│ │ +# Subject: CN=GTS Root R1 O=Google Trust Services LLC
│ │ +# Label: "GTS Root R1"
│ │ +# Serial: 146587175971765017618439757810265552097
│ │ +# MD5 Fingerprint: 82:1a:ef:d4:d2:4a:f2:9f:e2:3d:97:06:14:70:72:85
│ │ +# SHA1 Fingerprint: e1:c9:50:e6:ef:22:f8:4c:56:45:72:8b:92:20:60:d7:d5:a7:a3:e8
│ │ +# SHA256 Fingerprint: 2a:57:54:71:e3:13:40:bc:21:58:1c:bd:2c:f1:3e:15:84:63:20:3e:ce:94:bc:f9:d3:cc:19:6b:f0:9a:54:72
│ │ +-----BEGIN CERTIFICATE-----
│ │ +MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBH
│ │ +MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM
│ │ +QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy
│ │ +MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl
│ │ +cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEB
│ │ +AQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM
│ │ +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vX
│ │ +mX7wCl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7
│ │ +zUjwTcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0P
│ │ +fyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtc
│ │ +vfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4
│ │ +Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUsp
│ │ +zBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOO
│ │ +Rc92wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYW
│ │ +k70paDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+
│ │ +DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgF
│ │ +lQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
│ │ +HQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBADiW
│ │ +Cu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1
│ │ +d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6Z
│ │ +XPYfcX3v73svfuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZR
│ │ +gyFmxhE+885H7pwoHyXa/6xmld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3
│ │ +d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9bgsiG1eGZbYwE8na6SfZu6W0eX6Dv
│ │ +J4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq4BjFbkerQUIpm/Zg
│ │ +DdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWErtXvM
│ │ ++SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyy
│ │ +F62ARPBopY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9
│ │ +SQ98POyDGCBDTtWTurQ0sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdws
│ │ +E3PYJ/HQcu51OyLemGhmW/HGY0dVHLqlCFF1pkgl
│ │ +-----END CERTIFICATE-----
│ │ +
│ │ +# Issuer: CN=GTS Root R2 O=Google Trust Services LLC
│ │ +# Subject: CN=GTS Root R2 O=Google Trust Services LLC
│ │ +# Label: "GTS Root R2"
│ │ +# Serial: 146587176055767053814479386953112547951
│ │ +# MD5 Fingerprint: 44:ed:9a:0e:a4:09:3b:00:f2:ae:4c:a3:c6:61:b0:8b
│ │ +# SHA1 Fingerprint: d2:73:96:2a:2a:5e:39:9f:73:3f:e1:c7:1e:64:3f:03:38:34:fc:4d
│ │ +# SHA256 Fingerprint: c4:5d:7b:b0:8e:6d:67:e6:2e:42:35:11:0b:56:4e:5f:78:fd:92:ef:05:8c:84:0a:ea:4e:64:55:d7:58:5c:60
│ │ +-----BEGIN CERTIFICATE-----
│ │ +MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBH
│ │ +MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM
│ │ +QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy
│ │ +MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl
│ │ +cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEB
│ │ +AQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv
│ │ +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3Kg
│ │ +GjSY6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9Bu
│ │ +XvAuMC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOd
│ │ +re7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXu
│ │ +PuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1
│ │ +mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K
│ │ +8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqj
│ │ +x5RWIr9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsR
│ │ +nTKaG73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0
│ │ +kzCqgc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9Ok
│ │ +twIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
│ │ +HQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBALZp
│ │ +8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT
│ │ +vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiT
│ │ +z9D2PGcDFWEJ+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiA
│ │ +pJiS4wGWAqoC7o87xdFtCjMwc3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvb
│ │ +pxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3DaWsYDQvTtN6LwG1BUSw7YhN4ZKJmB
│ │ +R64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5rn/WkhLx3+WuXrD5R
│ │ +RaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56GtmwfuNmsk
│ │ +0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC
│ │ +5AwiWVIQ7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiF
│ │ +izoHCBy69Y9Vmhh1fuXsgWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLn
│ │ +yOd/xCxgXS/Dr55FBcOEArf9LAhST4Ldo/DUhgkC
│ │ +-----END CERTIFICATE-----
│ │ +
│ │ +# Issuer: CN=GTS Root R3 O=Google Trust Services LLC
│ │ +# Subject: CN=GTS Root R3 O=Google Trust Services LLC
│ │ +# Label: "GTS Root R3"
│ │ +# Serial: 146587176140553309517047991083707763997
│ │ +# MD5 Fingerprint: 1a:79:5b:6b:04:52:9c:5d:c7:74:33:1b:25:9a:f9:25
│ │ +# SHA1 Fingerprint: 30:d4:24:6f:07:ff:db:91:89:8a:0b:e9:49:66:11:eb:8c:5e:46:e5
│ │ +# SHA256 Fingerprint: 15:d5:b8:77:46:19:ea:7d:54:ce:1c:a6:d0:b0:c4:03:e0:37:a9:17:f1:31:e8:a0:4e:1e:6b:7a:71:ba:bc:e5
│ │ +-----BEGIN CERTIFICATE-----
│ │ +MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQsw
│ │ +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
│ │ +MBIGA1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
│ │ +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
│ │ +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQA
│ │ +IgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout
│ │ +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2A
│ │ +DDL24CejQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
│ │ +DgQWBBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFuk
│ │ +fCPAlaUs3L6JbyO5o91lAFJekazInXJ0glMLfalAvWhgxeG4VDvBNhcl2MG9AjEA
│ │ +njWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOaKaqW04MjyaR7YbPMAuhd
│ │ +-----END CERTIFICATE-----
│ │ +
│ │ +# Issuer: CN=GTS Root R4 O=Google Trust Services LLC
│ │ +# Subject: CN=GTS Root R4 O=Google Trust Services LLC
│ │ +# Label: "GTS Root R4"
│ │ +# Serial: 146587176229350439916519468929765261721
│ │ +# MD5 Fingerprint: 5d:b6:6a:c4:60:17:24:6a:1a:99:a8:4b:ee:5e:b4:26
│ │ +# SHA1 Fingerprint: 2a:1d:60:27:d9:4a:b1:0a:1c:4d:91:5c:cd:33:a0:cb:3e:2d:54:cb
│ │ +# SHA256 Fingerprint: 71:cc:a5:39:1f:9e:79:4b:04:80:25:30:b3:63:e1:21:da:8a:30:43:bb:26:66:2f:ea:4d:ca:7f:c9:51:a4:bd
│ │ +-----BEGIN CERTIFICATE-----
│ │ +MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQsw
│ │ +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
│ │ +MBIGA1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
│ │ +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
│ │ +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQA
│ │ +IgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu
│ │ +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/l
│ │ +xKvRHYqjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
│ │ +DgQWBBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0
│ │ +CMRw3J5QdCHojXohw0+WbhXRIjVhLfoIN+4Zba3bssx9BzT1YBkstTTZbyACMANx
│ │ +sbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11xzPKwTdb+mciUqXWi4w==
│ │ +-----END CERTIFICATE-----
│ │ +
│ │ +# Issuer: CN=UCA Global G2 Root O=UniTrust
│ │ +# Subject: CN=UCA Global G2 Root O=UniTrust
│ │ +# Label: "UCA Global G2 Root"
│ │ +# Serial: 124779693093741543919145257850076631279
│ │ +# MD5 Fingerprint: 80:fe:f0:c4:4a:f0:5c:62:32:9f:1c:ba:78:a9:50:f8
│ │ +# SHA1 Fingerprint: 28:f9:78:16:19:7a:ff:18:25:18:aa:44:fe:c1:a0:ce:5c:b6:4c:8a
│ │ +# SHA256 Fingerprint: 9b:ea:11:c9:76:fe:01:47:64:c1:be:56:a6:f9:14:b5:a5:60:31:7a:bd:99:88:39:33:82:e5:16:1a:a0:49:3c
│ │ +-----BEGIN CERTIFICATE-----
│ │ +MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9
│ │ +MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH
│ │ +bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x
│ │ +CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds
│ │ +b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr
│ │ +b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9
│ │ +kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm
│ │ +VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R
│ │ +VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc
│ │ +C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj
│ │ +tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY
│ │ +D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv
│ │ +j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl
│ │ +NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6
│ │ +iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP
│ │ +O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/
│ │ +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV
│ │ +ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj
│ │ +L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5
│ │ +1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl
│ │ +1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU
│ │ +b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV
│ │ +PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj
│ │ +y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb
│ │ +EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg
│ │ +DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI
│ │ ++Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy
│ │ +YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX
│ │ +UB+K+wb1whnw0A==
│ │ +-----END CERTIFICATE-----
│ │ +
│ │ +# Issuer: CN=UCA Extended Validation Root O=UniTrust
│ │ +# Subject: CN=UCA Extended Validation Root O=UniTrust
│ │ +# Label: "UCA Extended Validation Root"
│ │ +# Serial: 106100277556486529736699587978573607008
│ │ +# MD5 Fingerprint: a1:f3:5f:43:c6:34:9b:da:bf:8c:7e:05:53:ad:96:e2
│ │ +# SHA1 Fingerprint: a3:a1:b0:6f:24:61:23:4a:e3:36:a5:c2:37:fc:a6:ff:dd:f0:d7:3a
│ │ +# SHA256 Fingerprint: d4:3a:f9:b3:54:73:75:5c:96:84:fc:06:d7:d8:cb:70:ee:5c:28:e7:73:fb:29:4e:b4:1e:e7:17:22:92:4d:24
│ │ +-----BEGIN CERTIFICATE-----
│ │ +MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH
│ │ +MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF
│ │ +eHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx
│ │ +MDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV
│ │ +BAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB
│ │ +AQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog
│ │ +D4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS
│ │ +sPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop
│ │ +O2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk
│ │ +sHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi
│ │ +c0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj
│ │ +VMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz
│ │ +KuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/
│ │ +TuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G
│ │ +sx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs
│ │ +1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD
│ │ +fwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T
│ │ +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN
│ │ +l8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR
│ │ +ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ
│ │ +VBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5
│ │ +c6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp
│ │ +4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s
│ │ +t2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj
│ │ +2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO
│ │ +vpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C
│ │ +xR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx
│ │ +cmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM
│ │ +fjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax
│ │ +-----END CERTIFICATE-----
│ │ +
│ │ +# Issuer: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036
│ │ +# Subject: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036
│ │ +# Label: "Certigna Root CA"
│ │ +# Serial: 269714418870597844693661054334862075617
│ │ +# MD5 Fingerprint: 0e:5c:30:62:27:eb:5b:bc:d7:ae:62:ba:e9:d5:df:77
│ │ +# SHA1 Fingerprint: 2d:0d:52:14:ff:9e:ad:99:24:01:74:20:47:6e:6c:85:27:27:f5:43
│ │ +# SHA256 Fingerprint: d4:8d:3d:23:ee:db:50:a4:59:e5:51:97:60:1c:27:77:4b:9d:7b:18:c9:4d:5a:05:95:11:a1:02:50:b9:31:68
│ │ +-----BEGIN CERTIFICATE-----
│ │ +MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw
│ │ +WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw
│ │ +MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x
│ │ +MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD
│ │ +VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX
│ │ +BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
│ │ +ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO
│ │ +ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M
│ │ +CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu
│ │ +I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm
│ │ +TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh
│ │ +C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf
│ │ +ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz
│ │ +IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT
│ │ +Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k
│ │ +JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5
│ │ +hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB
│ │ +GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
│ │ +FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of
│ │ +1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov
│ │ +L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo
│ │ +dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr
│ │ +aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq
│ │ +hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L
│ │ +6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG
│ │ +HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6
│ │ +0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB
│ │ +lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi
│ │ +o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1
│ │ +gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v
│ │ +faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63
│ │ +Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh
│ │ +jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw
│ │ +3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0=
│ │ +-----END CERTIFICATE-----
│ --- certifi-2018.10.15/LICENSE
├── +++ certifi-2018.11.29/LICENSE
│┄ Files similar despite different names (difference score: 0)
│ --- certifi-2018.10.15/certifi.egg-info/PKG-INFO
├── +++ certifi-2018.11.29/PKG-INFO
│┄ Files similar despite different names (difference score: 34)
│ │ @@ -1,12 +1,12 @@
│ │ Metadata-Version: 1.1
│ │ Name: certifi
│ │ -Version: 2018.10.15
│ │ +Version: 2018.11.29
│ │ Summary: Python package for providing Mozilla's CA Bundle.
│ │ -Home-page: http://certifi.io/
│ │ +Home-page: https://certifi.io/
│ │ Author: Kenneth Reitz
│ │ Author-email: me@kennethreitz.com
│ │ License: MPL-2.0
│ │ Description: Certifi: Python SSL Certificates
│ │ ================================
│ │
│ │ `Certifi`_ is a carefully curated collection of Root Certificates for
│ │ @@ -41,20 +41,17 @@
│ │ reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
│ │ bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
│ │ certificate from the same CA. Because Mozilla removed these certificates from
│ │ its bundle, ``certifi`` removed them as well.
│ │
│ │ In previous versions, ``certifi`` provided the ``certifi.old_where()`` function
│ │ to intentionally re-add the 1024-bit roots back into your bundle. This was not
│ │ - recommended in production and therefore was removed. To assist in migrating old
│ │ - code, the function ``certifi.old_where()`` continues to exist as an alias of
│ │ - ``certifi.where()``. Please update your code to use ``certifi.where()``
│ │ - instead. ``certifi.old_where()`` will be removed in 2018.
│ │ + recommended in production and therefore was removed at the end of 2018.
│ │
│ │ - .. _`Certifi`: http://certifi.io/en/latest/
│ │ + .. _`Certifi`: https://certifi.io/en/latest/
│ │ .. _`Requests`: http://docs.python-requests.org/en/latest/
│ │
│ │ Platform: UNKNOWN
│ │ Classifier: Development Status :: 5 - Production/Stable
│ │ Classifier: Intended Audience :: Developers
│ │ Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
│ │ Classifier: Natural Language :: English
"Accept": "application/json", | ||
} | ||
def update_auth_header(self) -> None: | ||
if self.token is not None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be if self.token:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mypy
yells at this because these two statements are not equivalent. Also, there is never a case where the token will be an empty string, so this works too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://github.com/freedomofpress/securedrop-sdk/pull/63/files#diff-922f10157cf861460ae77dc5c7dc980eR76 this is where it should be an empty string to represent False
or in this case, the value to represent that the token has not been setup yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same should be with headers
, something is not None
should be avoided in Python code.
self.username = username | ||
self.passphrase = passphrase | ||
self.totp = totp | ||
self.token = None # type: Optional[str] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be an empty string to represent the False value.
Ok commenting on this post merge, I don't think we should use empty strings to represent "not present" as our best practice since |
There is a reason empty string is formally counted as false value :) |
fixes #62
I also changed the
API
attributeauth_headers
toreq_headers
because 2 of the 3 headers were not directly related to authorization.I also split the received token from the API into two attributes
token:str
andtoken_expiration:datetime
instead of leaving it as adict
since that makes type checking easier.