Metadata-Version: 2.0
Name: hibp
Version: 0.0.3
Summary: A Python interface to the Have I Been Pwned API
Home-page: https://github.com/pegasos1/haveibeenpwned
Author: pegasos1
Author-email: sgrangan01@gmail.com
License: Apache 2.0
Keywords: security breach api pwned hack
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Security
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: requests
Requires-Dist: gevent

# Have I Been Pwned?

Python interface to Have I Been Pwned API


## What is Have I Been Pwned?

[Have I Been Pwned](https://haveibeenpwned.com/) is a free resource to quickly assess if an account or domain has been compromised or "pwned" in a data breach. By aggregating the data here the project helps victims be aware of account compromises, and highlights the severity of the risks of Internet-wide attacks. For more information on who, what, and why, click [here](https://haveibeenpwned.com/About).

## Dependencies

```
requests
gevent
```

## Setup

This library runs on **Python3.x+**

To install, run:

```
$ pip install hibp
```

## To run

You can query breach data on individual accounts/domains as well as data on full breaches. Each service request object contains a response attribute that holds the raw data output in JSON format. To perform a query, just setup a service request object, and then execute:

```python
>> req = HIBP.get_account_breaches("pegasos1")
>> req.execute()
>> req.response
```


If you want to query on multiple accounts or domains at once, you can use the `AsyncHIBP` object, which performs queries concurrently via gevent.

```python
>> names = ['adobe','ashleymadison', 'myspace']
>> breaches = [HIBP.get_breach(x) for x in names]
>> async_reqs = AsyncHIBP().map(breaches)
>> [async_req.response for async_req in async_reqs]
```

In addition to a canonical `map` method, `AsyncHIBP` also supports the `imap` method, which returns a generator object for lazy queries.


```python
>> domains = ['twitter.com','facebook.com', 'adobe.com']
>> breaches = [HIBP.get_domain_breaches(x) for x in domains]
>> async_reqs = AsyncHIBP().imap(breaches)
>> next(async_reqs)
```


