semvec/pypi-packages huggingface dataset:
iopipe-cli 0.1.7
cli utility for managing and instrumenting serverless applications
Requires Python: >=3.3

Installer for IOpipe
====================

Applies the IOpipe layers to functions in your AWS account. Uses
credentials as configured for the AWS CLI.

Runtimes supported
------------------

-  Node.js 10
-  Java 8
-  Python 2.7
-  Python 3.6

Installation & configuration
============================

On your system CLI:

::

   pip3 install iopipe-cli

This tool assumes the AWS cli tool is configured correctly. Install and
configure the AWS CLI as such:

::

   pip3 install awscli --upgrade --user

Run the awscli configuration wizard:

::

   aws configure

Refer to the `AWS CLI User
Guide <https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html>`__
for advanced configuration options and support for the aws cli tool.

Installing IOpipe for functions with ``iopipe``
===============================================

The easiest way to update a function is to update it with the AWS Lambda
API:

::

   iopipe lambda install --function <name or arn> --token <IOPIPE_TOKEN>

The token may also be passed by the CLI’s environment variable,
``IOPIPE_TOKEN``.

If your Lambda has been deployed by Cloudformation, this method will
cause stack drift.

Troubleshooting
===============

MacOS X: cannot find ``iopipe`` after installation
--------------------------------------------------

Make sure your python script bin directory is included in your path.

The `documentation for the AWS
cli <https://docs.aws.amazon.com/cli/latest/userguide/install-macos.html#awscli-install-osx-path>`__
covers this topic and describes a solution.

Error: Invalid value for “–token” / “-t”: token invalid.
--------------------------------------------------------

Your token may be malformed or corrupted. Try copying-and-pasting again,
or using quotations on the cli.

Some users also report that they have the incorrect ``jwt`` library
installed on their system. This project uses the popular ``pyjwt``
module installable from PyPi.

Error: ``Unknown parameter in input: "Layers", must be one of: FunctionName, Role, Handler, Description, Timeout, MemorySize, VpcConfig, Environment, Runtime, DeadLetterConfig, KMSKeyArn, TracingConfig, RevisionId``
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

If you encounter this error, please update your boto3 dependency to the
latest version.
dedict 1.0.7
simple library to create objects from dictionaries

# Dedict
Dedict is a simple dependency-less library that allows you to create data objects from dictionaries. It currently works on Python 3.6 and 3.7

### Why Dedict?
There's already a few libraries out there that allow you to create objects from json/dictionaries, such as [jsonpickle](https://jsonpickle.github.io/). However these libraries usually rely on metadata stored in the input structure to create the object. That means the serialized object has noisy metadata in it and that the dictionary/json must have been generated with the library to be able to be transformed back into an object.

There's also [jsonstruct](https://github.com/initialxy/jsonstruct) which fixes the metadata issue, but requires dataclasses to have "default" values defined for their parameters so that it can read the types at runtime and understand how to create the object.

Dedict aims to strive away from these methods, and allow the creation of objects without relying on metadata inside the input data or arbitrary default values within the data class. Instead, dedict makes clever use of [type hints](https://www.python.org/dev/peps/pep-0484/) and [variable annotations](https://www.python.org/dev/peps/pep-0526/) that were introduced with Python 3.6

### Install
```
pip install dedict
```

### Usage example
```python
class SomeDataClass(Dedictable):
    something: str
    whatever: int

some_data_class = SomeDataClass.dedict({'something': 'test', 'whatever': 100})

# output: SomeDataClass(something='test', whatever=100)
```

Dedict also works recursively, meaning you can parse complex data structures
```python
class SomeChildClass(Dedictable):
    a: str
    b: str

class Complex(Dedictable):
    some_string: str
    child: SomeChildClass

complex = Complex.dedict({'some_string': 'test', 'child': {'a': 'hello', 'b': 'world'}})
```

### Built-in object model validation
Dedict also ensures the data passed is actually a valid representation of the object you're trying to create, by checking whether your data structure has fields that do not belong in the target object
```python
class Sample(Dedictable):
    something: str
    whatever: str

sample = Sample.dedict({'something': 'else', 'whatever': 'you want', 'hello': 'world'})

# raises: AttributeError('object Sample has no attribute named hello')
```

By default, dedict will not care about missing attributes in the input data structure, and will consider them optional. However you can enforce full validation by instead using the `DedictableStrict` implementation.
```python
class Strict(DedictableStrict):
    a: str
    b: str
    c: str

s = Strict.dedict({'b': 'hello', 'c': 'world'})

# raises: AttributeError('dictionary was missing mandatory attribute a to create an object of type Sample')
```

However, if you want full validation but also need to set some attributes as optional, dedict provides a new type annotation to mark attributes as optional when using the strict implementation.
```python
class Strict(DedictableStrict):
    a: OptionalAttr[str]
    b: str
    c: str

s = Strict.dedict({'b': 'hello', 'c': 'world'})
```