Skip to main content

Environmental Acquisiton

This package implements “environmental acquisiton” for Python, as proposed in the OOPSLA96 paper by Joseph Gil and David H. Lorenz:

We propose a new programming paradigm, environmental acquisition in the context of object aggregation, in which objects acquire behaviour from their current containers at runtime. The key idea is that the behaviour of a component may depend upon its enclosing composite(s). In particular, we propose a form of feature sharing in which an object “inherits” features from the classes of objects in its environment. By examining the declaration of classes, it is possible to determine which kinds of classes may contain a component, and which components must be contained in a given kind of composite. These relationships are the basis for language constructs that supports acquisition.

Introductory Example

Zope implements acquisition with “Extension Class” mix-in classes. To use acquisition your classes must inherit from an acquisition base class. For example:

>>> import ExtensionClass, Acquisition

>>> class C(ExtensionClass.Base):
...     color = 'red'

>>> class A(Acquisition.Implicit):
...     def report(self):
...         print(self.color)
...
>>> a = A()
>>> c = C()
>>> c.a = a

>>> c.a.report()
red

>>> d = C()
>>> d.color = 'green'
>>> d.a = a

>>> d.a.report()
green

>>> try:
...     a.report()
... except AttributeError:
...     pass
... else:
...     raise AssertionError('AttributeError not raised.')

The class A inherits acquisition behavior from Acquisition.Implicit. The object, a, “has” the color of objects c and d when it is accessed through them, but it has no color by itself. The object a obtains attributes from its environment, where its environment is defined by the access path used to reach a.

Acquisition Wrappers

When an object that supports acquisition is accessed through an extension class instance, a special object, called an acquisition wrapper, is returned. In the example above, the expression c.a returns an acquisition wrapper that contains references to both c and a. It is this wrapper that performs attribute lookup in c when an attribute cannot be found in a.

Acquisition wrappers provide access to the wrapped objects through the attributes aq_parent, aq_self, aq_base. Continue the example from above:

>>> c.a.aq_parent is c
True
>>> c.a.aq_self is a
True

Explicit and Implicit Acquisition

Two styles of acquisition are supported: implicit and explicit acquisition.

Implicit acquisition

Implicit acquisition is so named because it searches for attributes from the environment automatically whenever an attribute cannot be obtained directly from an object or through inheritance.

An attribute can be implicitly acquired if its name does not begin with an underscore.

To support implicit acquisition, your class should inherit from the mix-in class Acquisition.Implicit.

Explicit Acquisition

When explicit acquisition is used, attributes are not automatically obtained from the environment. Instead, the method aq_acquire must be used. For example:

>>> print(c.a.aq_acquire('color'))
red

To support explicit acquisition, your class should inherit from the mix-in class Acquisition.Explicit.

Controlling Acquisition

A class (or instance) can provide attribute by attribute control over acquisition. You should subclass from Acquisition.Explicit, and set all attributes that should be acquired to the special value Acquisition.Acquired. Setting an attribute to this value also allows inherited attributes to be overridden with acquired ones. For example:

>>> class C(Acquisition.Explicit):
...     id = 1
...     secret = 2
...     color = Acquisition.Acquired
...     __roles__ = Acquisition.Acquired

The only attributes that are automatically acquired from containing objects are color, and __roles__. Note that the __roles__ attribute is acquired even though its name begins with an underscore. In fact, the special Acquisition.Acquired value can be used in Acquisition.Implicit objects to implicitly acquire selected objects that smell like private objects.

Sometimes, you want to dynamically make an implicitly acquiring object acquire explicitly. You can do this by getting the object’s aq_explicit attribute. This attribute provides the object with an explicit wrapper that replaces the original implicit wrapper.

Filtered Acquisition

The acquisition method, aq_acquire, accepts two optional arguments. The first of the additional arguments is a “filtering” function that is used when considering whether to acquire an object. The second of the additional arguments is an object that is passed as extra data when calling the filtering function and which defaults to None. The filter function is called with five arguments:

  • The object that the aq_acquire method was called on,

  • The object where an object was found,

  • The name of the object, as passed to aq_acquire,

  • The object found, and

  • The extra data passed to aq_acquire.

If the filter returns a true object that the object found is returned, otherwise, the acquisition search continues.

Here’s an example:

>>> from Acquisition import Explicit

>>> class HandyForTesting(object):
...     def __init__(self, name):
...         self.name = name
...     def __str__(self):
...         return "%s(%s)" % (self.name, self.__class__.__name__)
...     __repr__=__str__
...
>>> class E(Explicit, HandyForTesting): pass
...
>>> class Nice(HandyForTesting):
...     isNice = 1
...     def __str__(self):
...         return HandyForTesting.__str__(self)+' and I am nice!'
...     __repr__ = __str__
...
>>> a = E('a')
>>> a.b = E('b')
>>> a.b.c = E('c')
>>> a.p = Nice('spam')
>>> a.b.p = E('p')

>>> def find_nice(self, ancestor, name, object, extra):
...     return hasattr(object,'isNice') and object.isNice

>>> print(a.b.c.aq_acquire('p', find_nice))
spam(Nice) and I am nice!

The filtered acquisition in the last line skips over the first attribute it finds with the name p, because the attribute doesn’t satisfy the condition given in the filter.

Filtered acquisition is rarely used in Zope.

Acquiring from Context

Normally acquisition allows objects to acquire data from their containers. However an object can acquire from objects that aren’t its containers.

Most of the examples we’ve seen so far show establishing of an acquisition context using getattr semantics. For example, a.b is a reference to b in the context of a.

You can also manually set acquisition context using the __of__ method. For example:

>>> from Acquisition import Implicit
>>> class C(Implicit): pass
...
>>> a = C()
>>> b = C()
>>> a.color = "red"
>>> print(b.__of__(a).color)
red

In this case, a does not contain b, but it is put in b’s context using the __of__ method.

Here’s another subtler example that shows how you can construct an acquisition context that includes non-container objects:

>>> from Acquisition import Implicit

>>> class C(Implicit):
...     def __init__(self, name):
...         self.name = name

>>> a = C("a")
>>> a.b = C("b")
>>> a.b.color = "red"
>>> a.x = C("x")

>>> print(a.b.x.color)
red

Even though b does not contain x, x can acquire the color attribute from b. This works because in this case, x is accessed in the context of b even though it is not contained by b.

Here acquisition context is defined by the objects used to access another object.

Containment Before Context

If in the example above suppose both a and b have an color attribute:

>>> a = C("a")
>>> a.color = "green"
>>> a.b = C("b")
>>> a.b.color = "red"
>>> a.x = C("x")

>>> print(a.b.x.color)
green

Why does a.b.x.color acquire color from a and not from b? The answer is that an object acquires from its containers before non-containers in its context.

To see why consider this example in terms of expressions using the __of__ method:

a.x -> x.__of__(a)

a.b -> b.__of__(a)

a.b.x -> x.__of__(a).__of__(b.__of__(a))

Keep in mind that attribute lookup in a wrapper is done by trying to look up the attribute in the wrapped object first and then in the parent object. So in the expressions above proceeds from left to right.

The upshot of these rules is that attributes are looked up by containment before context.

This rule holds true also for more complex examples. For example, a.b.c.d.e.f.g.attribute would search for attribute in g and all its containers first. (Containers are searched in order from the innermost parent to the outermost container.) If the attribute is not found in g or any of its containers, then the search moves to f and all its containers, and so on.

Additional Attributes and Methods

You can use the special method aq_inner to access an object wrapped only by containment. So in the example above, a.b.x.aq_inner is equivalent to a.x.

You can find out the acquisition context of an object using the aq_chain method like so:

>>> [obj.name for obj in a.b.x.aq_chain]
['x', 'b', 'a']

You can find out if an object is in the containment context of another object using the aq_inContextOf method. For example:

>>> a.b.aq_inContextOf(a)
True

Acquisition Module Functions

In addition to using acquisition attributes and methods directly on objects you can use similar functions defined in the Acquisition module. These functions have the advantage that you don’t need to check to make sure that the object has the method or attribute before calling it.

aq_acquire(object, name [, filter, extra, explicit, default, containment])

Acquires an object with the given name.

This function can be used to explictly acquire when using explicit acquisition and to acquire names that wouldn’t normally be acquired.

The function accepts a number of optional arguments:

filter

A callable filter object that is used to decide if an object should be acquired.

The filter is called with five arguments:

  • The object that the aq_acquire method was called on,

  • The object where an object was found,

  • The name of the object, as passed to aq_acquire,

  • The object found, and

  • The extra argument passed to aq_acquire.

If the filter returns a true object that the object found is returned, otherwise, the acquisition search continues.

extra

Extra data to be passed as the last argument to the filter.

explicit

A flag (boolean value) indicating whether explicit acquisition should be used. The default value is true. If the flag is true, then acquisition will proceed regardless of whether wrappers encountered in the search of the acquisition hierarchy are explicit or implicit wrappers. If the flag is false, then parents of explicit wrappers are not searched.

This argument is useful if you want to apply a filter without overriding explicit wrappers.

default

A default value to return if no value can be acquired.

containment

A flag indicating whether the search should be limited to the containment hierarchy.

In addition, arguments can be provided as keywords.

aq_base(object)

Return the object with all wrapping removed.

aq_chain(object [, containment])

Return a list containing the object and it’s acquisition parents. The optional argument, containment, controls whether the containment or access hierarchy is used.

aq_get(object, name [, default, containment])

Acquire an attribute, name. A default value can be provided, as can a flag that limits search to the containment hierarchy.

aq_inner(object)

Return the object with all but the innermost layer of wrapping removed.

aq_parent(object)

Return the acquisition parent of the object or None if the object is unwrapped.

aq_self(object)

Return the object with one layer of wrapping removed, unless the object is unwrapped, in which case the object is returned.

In most cases it is more convenient to use these module functions instead of the acquisition attributes and methods directly.

Acquisition and Methods

Python methods of objects that support acquisition can use acquired attributes. When a Python method is called on an object that is wrapped by an acquisition wrapper, the wrapper is passed to the method as the first argument. This rule also applies to user-defined method types and to C methods defined in pure mix-in classes.

Unfortunately, C methods defined in extension base classes that define their own data structures, cannot use aquired attributes at this time. This is because wrapper objects do not conform to the data structures expected by these methods. In practice, you will seldom find this a problem.

Conclusion

Acquisition provides a powerful way to dynamically share information between objects. Zope uses acquisition for a number of its key features including security, object publishing, and DTML variable lookup. Acquisition also provides an elegant solution to the problem of circular references for many classes of problems. While acquisition is powerful, you should take care when using acquisition in your applications. The details can get complex, especially with the differences between acquiring from context and acquiring from containment.

Changelog

4.11 (2022-09-16)

  • Add support for Python 3.11 (as of 3.11.0rc1).

  • Switch from -Ofast to -O3 when compiling code for Linux wheels. (#64)

4.10 (2021-12-07)

  • Fix bug in the PURE_PYTHON version affecting aq_acquire applied to a class with a filter.

  • Improve interface documentation.

  • Add support for Python 3.10.

4.9 (2021-08-19)

  • On CPython no longer omit compiling the C code when PURE_PYTHON is required. Just evaluate it at runtime. (#53)

4.8 (2021-07-20)

  • Various fixes for the PURE_PYTHON version, e.g. make Acquired an str (as required by Zope), avoid infinite __cmp__ loop. (#51, #48)

  • Create aarch64 wheels.

4.7 (2020-10-07)

  • Add support for Python 3.8 and 3.9.

4.6 (2019-04-24)

  • Drop support for Python 3.4.

  • Add support for Python 3.8a3.

  • Add support to call bytes() on an object wrapped by an ImplicitAcquisitionWrapper. (#38)

4.5 (2018-10-05)

  • Avoid deprecation warnings by using current API.

  • Add support for Python 3.7.

4.4.4 (2017-11-24)

  • Add Appveyor configuration to automate building Windows eggs.

4.4.3 (2017-11-23)

  • Fix the extremely rare potential for a crash when the C extensions are in use. See issue 21.

4.4.2 (2017-05-12)

  • Fix C capsule name to fix import errors.

  • Ensure our dependencies match our expactations about C extensions.

4.4.1 (2017-05-04)

  • Fix C code under Python 3.4, with missing Py_XSETREF.

4.4.0 (2017-05-04)

  • Enable the C extension under Python 3.

  • Drop support for Python 3.3.

4.3.0 (2017-01-20)

  • Make tests compatible with ExtensionClass 4.2.0.

  • Drop support for Python 2.6 and 3.2.

  • Add support for Python 3.5 and 3.6.

4.2.2 (2015-05-19)

4.2.1 (2015-04-23)

4.2 (2015-04-04)

  • Add support for PyPy, PyPy3, and Python 3.2, 3.3, and 3.4.

4.1 (2014-12-18)

  • Bump dependency on ExtensionClass to match current release.

4.0.3 (2014-11-02)

  • Skip readme.rst tests when tests are run outside a source checkout.

4.0.2 (2014-11-02)

  • Include *.rst files in the release.

4.0.1 (2014-10-30)

  • Tolerate Unicode attribute names (ASCII only). LP #143358.

  • Make module-level aq_acquire API respect the default parameter. LP #1387363.

  • Don’t raise an attribute error for __iter__ if the fallback to __getitem__ succeeds. LP #1155760.

4.0 (2013-02-24)

  • Added trove classifiers to project metadata.

4.0a1 (2011-12-13)

  • Raise RuntimeError: Recursion detected in acquisition wrapper if an object with a __parent__ pointer points to a wrapper that in turn points to the original object.

  • Prevent wrappers to be created while accessing __parent__ on types derived from Explicit or Implicit base classes.

2.13.9 (2015-02-17)

  • Tolerate Unicode attribute names (ASCII only). LP #143358.

  • Make module-level aq_acquire API respect the default parameter. LP #1387363.

  • Don’t raise an attribute error for __iter__ if the fallback to __getitem__ succeeds. LP #1155760.

2.13.8 (2011-06-11)

  • Fixed a segfault on 64bit platforms when providing the explicit argument to the aq_acquire method of an Acquisition wrapper. Thx to LP #675064 for the hint to the solution. The code passed an int instead of a pointer into a function.

2.13.7 (2011-03-02)

  • Fixed bug: When an object did not implement __unicode__, calling unicode(wrapped) was calling __str__ with an unwrapped self.

2.13.6 (2011-02-19)

  • Add aq_explicit to IAcquisitionWrapper.

  • Fixed bug: unicode(wrapped) was not calling a __unicode__ method on wrapped objects.

2.13.5 (2010-09-29)

  • Fixed unit tests that failed on 64bit Python on Windows machines.

2.13.4 (2010-08-31)

  • LP 623665: Fixed typo in Acquisition.h.

2.13.3 (2010-04-19)

  • Use the doctest module from the standard library and no longer depend on zope.testing.

2.13.2 (2010-04-04)

  • Give both wrapper classes a __getnewargs__ method, which causes the ZODB optimization to fail and create persistent references using the _p_oid alone. This happens to be the persistent oid of the wrapped object. This lets these objects to be persisted correctly, even though they are passed to the ZODB in a wrapped state.

  • Added failing tests for http://dev.plone.org/plone/ticket/10318. This shows an edge-case where AQ wrappers can be pickled using the specific combination of cPickle, pickle protocol one and a custom Pickler class with an inst_persistent_id hook. Unfortunately this is the exact combination used by ZODB3.

2.13.1 (2010-02-23)

  • Update to include ExtensionClass 2.13.0.

  • Fix the tp_name of the ImplicitAcquisitionWrapper and ExplicitAcquisitionWrapper to match their Python visible names and thus have a correct __name__.

  • Expand the tp_name of our extension types to hold the fully qualified name. This ensures classes have their __module__ set correctly.

2.13.0 (2010-02-14)

2.12.4 (2009-10-29)

  • Fix iteration proxying to pass self acquisition-wrapped into both __iter__ as well as __getitem__ (this fixes https://bugs.launchpad.net/zope2/+bug/360761).

  • Add tests for the __getslice__ proxying, including open-ended slicing.

2.12.3 (2009-08-08)

  • More 64-bit fixes in Py_BuildValue calls.

  • More 64-bit issues fixed: Use correct integer size for slice operations.

2.12.2 (2009-08-02)

2.12.1 (2009-04-15)

  • Update for iteration proxying: The proxy for __iter__ must not rely on the object to have an __iter__ itself, but also support fall-back iteration via __getitem__ (this fixes https://bugs.launchpad.net/zope2/+bug/360761).

2.12 (2009-01-25)

  • Release as separate package.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Acquisition-4.11.tar.gz (66.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

Acquisition-4.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (123.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

Acquisition-4.11-cp310-cp310-win_amd64.whl (65.7 kB view details)

Uploaded CPython 3.10Windows x86-64

Acquisition-4.11-cp310-cp310-win32.whl (63.7 kB view details)

Uploaded CPython 3.10Windows x86

Acquisition-4.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (119.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

Acquisition-4.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (122.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

Acquisition-4.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (115.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

Acquisition-4.11-cp310-cp310-macosx_11_0_x86_64.whl (66.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

Acquisition-4.11-cp39-cp39-win_amd64.whl (65.7 kB view details)

Uploaded CPython 3.9Windows x86-64

Acquisition-4.11-cp39-cp39-win32.whl (63.7 kB view details)

Uploaded CPython 3.9Windows x86

Acquisition-4.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (118.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

Acquisition-4.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (121.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

Acquisition-4.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (115.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

Acquisition-4.11-cp39-cp39-macosx_10_15_x86_64.whl (66.4 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

Acquisition-4.11-cp38-cp38-win_amd64.whl (65.7 kB view details)

Uploaded CPython 3.8Windows x86-64

Acquisition-4.11-cp38-cp38-win32.whl (63.7 kB view details)

Uploaded CPython 3.8Windows x86

Acquisition-4.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (119.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

Acquisition-4.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (123.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

Acquisition-4.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (116.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

Acquisition-4.11-cp38-cp38-macosx_10_15_x86_64.whl (66.4 kB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

Acquisition-4.11-cp37-cp37m-win_amd64.whl (65.7 kB view details)

Uploaded CPython 3.7mWindows x86-64

Acquisition-4.11-cp37-cp37m-win32.whl (63.6 kB view details)

Uploaded CPython 3.7mWindows x86

Acquisition-4.11-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (110.5 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

Acquisition-4.11-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (113.5 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

Acquisition-4.11-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (106.8 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

Acquisition-4.11-cp37-cp37m-macosx_10_15_x86_64.whl (66.3 kB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

Acquisition-4.11-cp36-cp36m-win_amd64.whl (66.2 kB view details)

Uploaded CPython 3.6mWindows x86-64

Acquisition-4.11-cp36-cp36m-win32.whl (63.9 kB view details)

Uploaded CPython 3.6mWindows x86

Acquisition-4.11-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (110.5 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ ARM64

Acquisition-4.11-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (112.6 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

Acquisition-4.11-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (105.9 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

Acquisition-4.11-cp36-cp36m-macosx_10_14_x86_64.whl (66.1 kB view details)

Uploaded CPython 3.6mmacOS 10.14+ x86-64

Acquisition-4.11-cp35-cp35m-win_amd64.whl (66.1 kB view details)

Uploaded CPython 3.5mWindows x86-64

Acquisition-4.11-cp35-cp35m-win32.whl (63.8 kB view details)

Uploaded CPython 3.5mWindows x86

Acquisition-4.11-cp27-cp27m-win_amd64.whl (64.1 kB view details)

Uploaded CPython 2.7mWindows x86-64

Acquisition-4.11-cp27-cp27m-win32.whl (62.7 kB view details)

Uploaded CPython 2.7mWindows x86

Acquisition-4.11-cp27-cp27m-macosx_10_14_x86_64.whl (66.2 kB view details)

Uploaded CPython 2.7mmacOS 10.14+ x86-64

File details

Details for the file Acquisition-4.11.tar.gz.

File metadata

  • Download URL: Acquisition-4.11.tar.gz
  • Upload date:
  • Size: 66.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for Acquisition-4.11.tar.gz
Algorithm Hash digest
SHA256 053e1a2fdeb639f3ed3c07e0b27ebc30d8a731594ca320219b7d5126d6d27ec9
MD5 3fe3b9e0af66e99da51eebb1e81d9f9d
BLAKE2b-256 4f4a3f3acdb526eb6b08723851d57da5ef85e61f203ecda1cccb1da84f13020e

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b978975e4bf194269f4e42f601f39a8c8f4d062df87aec9c0128fcaa9dfb6ec9
MD5 df9530417ae004395fc9813c55d2e69f
BLAKE2b-256 210c0b62a2b42485f451a675f3961f914d99ccdd5a5b77be77aceb200901dbb3

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: Acquisition-4.11-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 65.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.0

File hashes

Hashes for Acquisition-4.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 37d09f3e64763312e60fa50c8394f1f72c3d76d6bc50af68d1769f8dcb2f208d
MD5 bd082ff03c6edba76cdc4f27a86c0730
BLAKE2b-256 6d2a0a4b1062db400057f248c8ff594a4972dc879308e96fff0f0ac5942b3ae7

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp310-cp310-win32.whl.

File metadata

  • Download URL: Acquisition-4.11-cp310-cp310-win32.whl
  • Upload date:
  • Size: 63.7 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.0

File hashes

Hashes for Acquisition-4.11-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 e159f109cfe5c621231dd713ed0f5b74071395c898500312451e693af6b74f09
MD5 d7e4c659bd68db4625192b87b537856b
BLAKE2b-256 007d6a94d2cb7c401217574717b54fad2cb8486961219e529b7d4e993fbef710

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 917e53afe8d3c043ce312d8adc7bc2a50c71ed7b34278a869ab60bb94372d2dc
MD5 f295f6e3cfb363e851500265669e0aae
BLAKE2b-256 1a5cb0246378d202c1b69313daf471cc8c98dd21feb917d8585cded45baf4bf8

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c90908bfa7b7543a5fbfe1872f3ead6c130f081e7135f1445e06afd492863324
MD5 95116289ef78857b018e3f0b292aeafc
BLAKE2b-256 5dbf15778e4de1f5e5cb4dfdc1e7c6e68dbfae2d8c9d798a660279d3e88dca09

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 cd58486a40ae1395f57095b287d91201f1120bca687ab299952d4e7ebbb0ac94
MD5 5fd8ec9c8a0e069b5398021d8023b752
BLAKE2b-256 5c568638cbe77a2e787ea36ec13665cbdcb668487cd7be4a77e94fad5068d002

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 0a6ec78f1e93fb96d8d10c8886219efa2ade6482cef5dd208407e46ce3afe5f6
MD5 30a605d20d5d574921b2d97b528641b7
BLAKE2b-256 808f93741bd65e25e730c96ab1167dec461e6c82e702eedd0bddc3b852b46cd3

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: Acquisition-4.11-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 65.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.0

File hashes

Hashes for Acquisition-4.11-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7875fea171fa535d21dffbd4614a23d20e858abd4d7ff14f83959bfcff3819a8
MD5 a6d2a05e0de4b1d2d115a24ac9a9faf5
BLAKE2b-256 7d2df05f3987f6ca352d4531e4a20ea8ff3aab0d3b540c6e1d97ee5cf55fa89e

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp39-cp39-win32.whl.

File metadata

  • Download URL: Acquisition-4.11-cp39-cp39-win32.whl
  • Upload date:
  • Size: 63.7 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.0

File hashes

Hashes for Acquisition-4.11-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 51a22c76812a3309f8e167f06e8fc729ad1eb23b3bc53a2a54f86207abb60e8b
MD5 199252fc9fa5d5ecafd3a2787e7c86a5
BLAKE2b-256 fd7e2e69e75c3a8c934f78f2093f1d9f93dc5c1d39f186ebed639dc77a8af118

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d0f67ee911523cd7ece4a05bbbbab0bd7fa9333cbd43a5dd4df6e8c8fa5334f1
MD5 f562292827fe086dc05728407b0e04e2
BLAKE2b-256 25d0c55d989974d6c102c4df83c3f98439cd7126b659c9ec229ea4d43c314b17

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 95b34ac4b7411b518b3ca2806fbdcb8acab44bcc1c451251891a6c9e347a22dc
MD5 6d895006320b242a2ea6013b6bc66193
BLAKE2b-256 b77ec15ad5dfad3a317a4dbc89dad30b15fe6766761b8ab31226769e0661dd4e

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 caae6339b357ce9face284b0a15ee4a3ed4848aa544bfa74b6bb034ce784480a
MD5 e656786d962e56b5fefb4f0ee7686a80
BLAKE2b-256 ec42922afe47e3d98391e894a3f31bce8c652aa678773c226a4afa2522aebd1c

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c7d76bcad4684685331184004df371eb3a957e93cb76982479a4aec3e661d594
MD5 2216c337af413ff18881fe61a55bb7e9
BLAKE2b-256 606e981d594f8c94091e73b3802a67e99ed96a74645b57704ccffb096330b962

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: Acquisition-4.11-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 65.7 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.0

File hashes

Hashes for Acquisition-4.11-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8917672c4f406b173d50306e974008603598168a76e345f61bb8d14f9552a49c
MD5 9eb04aa760383c929b25510b93b5de0a
BLAKE2b-256 a63eab9524529e64a36fc7d1d2cebd9bf08dac20d01fbf34d0c9d4369d5f9a16

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp38-cp38-win32.whl.

File metadata

  • Download URL: Acquisition-4.11-cp38-cp38-win32.whl
  • Upload date:
  • Size: 63.7 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.0

File hashes

Hashes for Acquisition-4.11-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 b01a43ebbe436070bb6048f8332fe34e6d480a5e5a416ecc7b3acd4c1954a86e
MD5 2340879756c001a1f4b5bee891ebf1d0
BLAKE2b-256 f7dab0257e46a38d667eb5d3c7151c073a1596ef6f7850768722236f033d6307

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eb79aae285ae4ce7716b7d3dfb3f0407ac42f91d9971f866cc1e4bdc7ce2328e
MD5 2c93601eaa10cb4864a0c595f3b17ca6
BLAKE2b-256 d278d1c442b18e2de388abfb9463aab6e4f1c0b878bbdb5053ad63632025f6aa

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f6ed02503d4f1d88ae10c80e2c7718e1b5a07844fbe885b5cc8f110bb87f7ed1
MD5 4be51d26d6bc7c47aa335f88a17639f9
BLAKE2b-256 bad37f54587362311b6ae7877610ae411c89eb1284dfe04be08fee01e1d610ae

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 52fbe5a59dfaa94733c1020f554f1ca58209c655b006986866f7b7ea7fd1bc6a
MD5 75714ba658102810c77eabaec7077ea3
BLAKE2b-256 60084889134228631aeabad3944de8ae91749778d87366ac5c806e4505b750dd

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 895eec35bda85e0ad3610a6a463e5c61c4c0c429cd96a9e4e686454a807db201
MD5 8880252845be278d6399164fa0fc76c4
BLAKE2b-256 06ecbe60400e05a38940432f36d954c46433bf803ee2fd3286f9bc7272f88ae7

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: Acquisition-4.11-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 65.7 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.5

File hashes

Hashes for Acquisition-4.11-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ecad30a66e0f1b0ddcf9c90567d758856752352e6c2463a39489e1de897bc9c7
MD5 d8918b4418ddfb628b8ba7c2f5238abf
BLAKE2b-256 6593b249f5c8dec8dac57c1b10d0abe7f07efef1f5c854cfd6ce674dc8ba9c2a

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp37-cp37m-win32.whl.

File metadata

  • Download URL: Acquisition-4.11-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 63.6 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.5

File hashes

Hashes for Acquisition-4.11-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 51e9bf8fb1c148d7141b112eaec9e18f7def59917d6ad8d69a1122389f59cc49
MD5 4a1434bf5a7a24cec08a28efe2e4ab94
BLAKE2b-256 015d9872b2a65a29854c67e21877777b5d3483f8582388c718eba10773a113cf

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 076f4e948eb40d672ef8e0d00dba4a07bf67d4326e94ae1bfae9e83a6169afaa
MD5 e46e8cb4747fb729b256edee58b9717a
BLAKE2b-256 cc2454a326e3198ab7a9cf5dff3ce5a40ff74d225eda5ac7febd163c90d90c4d

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 97babcafd03164d10fffcad44a12a686c535caafe8a09d0aa3351bf7ab889449
MD5 a5ad0ca024567668dd71203644f0cf8c
BLAKE2b-256 24a9d7abb51c4f12e47c851468c7050d7084fcde8e875d73790c940c9d635d49

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 9bcdbbbfa1108ce61ff8ffe809ff8138ac1451252e322ac5fd411cd73ac6e72b
MD5 125dba444a9ca44332ed9d2de1f23e6c
BLAKE2b-256 f35d19bb692d3732984ced065f2700ac58ac39299519d1f1a6aebaa66db1bd6b

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8f679851c093f0a319b3f418aaadcd97c48adce6461d258c94e5d64ff0424c18
MD5 403b520715e8cbd93f2427f5a45fe308
BLAKE2b-256 a0d88559c3b15687dd6fdce71c235ef11d919d5e83c3d4bdf493d72b91274fac

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: Acquisition-4.11-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 66.2 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.12 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8

File hashes

Hashes for Acquisition-4.11-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 9e7b2b1333cef343bcbc253cb9f53726594058254c76300ab1de441cba24050d
MD5 8fc8346b187d56aebf55a1f411180e7e
BLAKE2b-256 bd5ad22658c3df95da72dc2dac0c910c01891c0ea29d6c19cae012bb8d69e71b

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp36-cp36m-win32.whl.

File metadata

  • Download URL: Acquisition-4.11-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 63.9 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.12 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8

File hashes

Hashes for Acquisition-4.11-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 66b6ec90f5335765c0f086733d1b39834a5899ce8adf8190a8f835e8d3f25fa9
MD5 0374d3ca29b7905a0b7211f6aa459f51
BLAKE2b-256 986e1f193ce722c92ece1dd27236cdeca02c576978d622fc844b39458396decc

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8a24477f92a488ce16ed38d5f0cb65a42b15c33601abdd824f9f6ddc5ac9d1cb
MD5 67dcfb2467d99e05ab85a58b504084b9
BLAKE2b-256 e093d156ee8b657f0dc198d3b6af7911d1e62b1e6e19cd3ab9cf65ce68df625d

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c2a9fda7762c6e0a3414fe0bfade4090dbbc324605d44cbc154d33dd6da607c4
MD5 450727098a9313b518842465c8978467
BLAKE2b-256 f9bce79040c90d77b6fe1316cadce56661135ed9837b2f1a773f6380c17512f8

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for Acquisition-4.11-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 249724d1e1b53f861524069014e8139ad9897eff21479109b1e3a54ea1962ae7
MD5 c11a4780aa7f7414f98d509df91e7e75
BLAKE2b-256 906033acf15e6e037d94ec2f21ecd3d3ce0baaa93ccb77475052736d20543bd3

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp36-cp36m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: Acquisition-4.11-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 66.1 kB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.12 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15

File hashes

Hashes for Acquisition-4.11-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 143b38c4c5155a4cab10f3c25d01f0805c1d79cbe6030280e139ed7c714d240c
MD5 6eaabc949c7e36bb15d2171d953a84ea
BLAKE2b-256 0918b88f0790d22d254812912fe23a7e7e5fff0bcfd96d78d8881de5e8c0614e

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: Acquisition-4.11-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 66.1 kB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.2 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.5.4

File hashes

Hashes for Acquisition-4.11-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 3af6a1bb77de8a8539567eb9228c37160031e8f53ba63aaa3d32858390f392b5
MD5 3d3b00e507f15ba15b1c414544d77b70
BLAKE2b-256 d2e46eab38ae08e02d12c9256a9032251675f03a8fbb86e63fe9746149c5e006

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp35-cp35m-win32.whl.

File metadata

  • Download URL: Acquisition-4.11-cp35-cp35m-win32.whl
  • Upload date:
  • Size: 63.8 kB
  • Tags: CPython 3.5m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.2 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.5.4

File hashes

Hashes for Acquisition-4.11-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 073c27835686cf6aeeff5177a8fcd810966ce43cd1ceb7ab89251c95c6706189
MD5 63b2a098583aa17d4a3a03958b834f34
BLAKE2b-256 8aba81ca4085c7e1febdecd29ebec5d4a9a712456a767f4757952aeacb87f56a

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp27-cp27m-win_amd64.whl.

File metadata

  • Download URL: Acquisition-4.11-cp27-cp27m-win_amd64.whl
  • Upload date:
  • Size: 64.1 kB
  • Tags: CPython 2.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/2.7.17

File hashes

Hashes for Acquisition-4.11-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 d9deeabe8178f39424309afd53303d7d7c0c884bf1b5ef1e9aee2dfaa68a06cf
MD5 4a17bae6dd71ae2b8d53aca3bd35f682
BLAKE2b-256 1a4fc4ede89ba45f6fff955eb44bed877a9d2cd102d59a489bd5c9fc91d5ac02

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp27-cp27m-win32.whl.

File metadata

  • Download URL: Acquisition-4.11-cp27-cp27m-win32.whl
  • Upload date:
  • Size: 62.7 kB
  • Tags: CPython 2.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/2.7.17

File hashes

Hashes for Acquisition-4.11-cp27-cp27m-win32.whl
Algorithm Hash digest
SHA256 3ca6e380a872e45d635e8d99cfed3f8f49b683ac837c9708512ad31d372ec0dc
MD5 8e03a06d9c9f53496a6a956e6865d6e9
BLAKE2b-256 cb554c6bf94661983decad7068337d0c236732273e26e6a2a8c80661dcf4d55c

See more details on using hashes here.

File details

Details for the file Acquisition-4.11-cp27-cp27m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: Acquisition-4.11-cp27-cp27m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 66.2 kB
  • Tags: CPython 2.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/2.7.18

File hashes

Hashes for Acquisition-4.11-cp27-cp27m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2a311f2ce436bf42958584de423be676ecbb7f82fb3a2253400b4b47d9c1ad6a
MD5 e7a64f1882c9f39bc3d7a1c6a82b3b11
BLAKE2b-256 df4f0865e661e6d229f0462e38d8fbf11b1668ec6963ff85409be6b39bf23b63

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page