Metadata-Version: 2.1
Name: SmoothAPI
Version: 1.0.1
Summary: An API Wrapper For Every API
Home-page: https://github.com/technerium/SmoothAPI
Author: Technerium
Author-email: technerium@gmail.com
License: MIT
Description: # Fork of AnyAPI for our needs
        
        # AnyAPI
        AnyAPI is a library that I developed for myself to have better looking code instead putting URLs to everywhere I used dynamic method calls to access a endpoint.
        
        ### Features
        * Have better looking code using dynamic method calls
        * Filters to help you to modify request, raise errors or log requests instead of writing functions everywhere.
        * Automatically changing proxy according to rate limits specified by you for every path
        
        
        ***
        
        ### Examples
        Making GET request to https://httpbin.org/anything/endpoint
        ```python
        from anyapi import AnyAPI
        
        
        base_url = 'https://httpbin.org'
        api = AnyAPI(base_url)
        
        api.anything.endpoint.GET()
        ```
        As you can see dots are pretended as slash and at the end you should put dot and HTTP method you want to use in capital letters.
        
        ***
        
        Setting header before every request
        ```python
        import datetime
        from anyapi import AnyAPI
        
        
        def set_date_as_header(kwargs):
            now = datetime.datetime.now()
            kwargs['headers'].update({'date': now.strftime('%B %d %Y')})
        
            return kwargs
        
        api = AnyAPI('https://httpbin.org')
        api._filter_request.append(set_date_as_header)
        
        print(api.anything.endpoint.GET().json())
        # output
        {
           'args': {},
           'data': '',
           'files': {},
           'form': {},
           'headers': {
              'Accept-Encoding': 'identity',
              'Connection': 'close',
              'Date': 'January 16 2019',
              'Host': 'httpbin.org'
           },
           'json': None,
           'method': 'GET',
           'origin': 'XX.XX.XX.XX',
           'url': 'https://httpbin.org/anything/endpoint'
        }
        ```
        As you can see filter worked as expected and set `Date` header.
        
        ***
        
        Changing proxy automatically after they reach their rate limit
        ```python
        from anyapi import AnyAPI
        
        proxy_configuration = {
          'default': proxy0,
          'proxies': [proxy0, proxy1, proxy2,....], # don't forget to add default proxy!
          'paths': {
            '/anything': rate_limit0,
            '/anything/endpoint': rate_limit1
          }
        }
        
        api = AnyAPI('https://httpbin.org', proxy_configuration=proxy_configuration)
        
        for i in range(10):
          print(api.anything.endpoint.GET().json())
        ```
        If you check output of the all them you can see proxy changes when it reaches limit.
        
        ### This library is not a new thing
        There is a lot of libraries you can find out there for example [Uplink](https://github.com/prkumar/uplink/), [Hammock](https://github.com/kadirpekel/hammock) and many more
        
        ***
        
        ## Installation
        Library is avaible on PyPi so just run
        
        ```
        pip install anyapi
        ```
        
        
        # To learn more about AnyAPI check [wiki page](https://github.com/FKLC/AnyAPI/wiki/)
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
