Wraps the eBay REST APIs.
Project description
ebay_rest
A tread-safe Python 3 pip package that conveniently wraps eBay’s REST APIs.
Installation
Use the package manager pip to install ebay_rest.
pip install ebay_rest # Use pip3 if your computer happens to also have Python 2 installed.
Setup
Follow the instructions here.
Usage
from ebay_rest import API, DateTime, Error, Reference
print(f"eBay's official date and time is {DateTime.to_string(DateTime.now())}.\n")
print("All valid eBay global id values, also known as site ids.")
print(Reference.get_global_id_values(), '\n')
try:
api = API(sandbox=False)
except Error as error:
print(f'Error {error.number} is {error.reason} {error.detail}.\n')
else:
try:
print("The five least expensive iPhone things now for sale on-eBay:")
for item in api.buy_browse_search(q='iPhone', sort='price', limit=5):
print(f"item id: {item['item_id']} {item['item_web_url']}")
except Error as error:
print(f'Error {error.number} is {error.reason} {error.detail}.\n')
else:
pass
print("\nClass documentation:")
print(help(API)) # Over a hundred methods are available!
print(help(DateTime))
print(help(Error))
print(help(Reference))
FAQ | Frequently Asked Questions
Question: How are API results organized?
Answer:
- Elemental information is stored in dates, integers, strings and other basic built-in types.
- Dictionaries contain related elements.
- Lists contain information organized repetitively; expect zero or more contents.
- Dicts and Lists may be nested.
- eBay classifies data as optional or mandatory. Optional elements, dicts or lists are omitted. Manditories have a None value.
Q: How to make API calls faster?
A: Prioritized, do the first things first.
- Reuse the API object.
- Some calls have filtering options; omit unneeded data.
- When the call returns a list, make the call in a "for" loop.
- Use threading to make calls in parallel but don't exhaust RAM.
- Use multiprocessing. -- Multiprocessing support is a future goal. -- A safe workaround is to concurrently run copies of your program and divide the work among each.
- Switch to a faster internet connection.
- Switch to computer with faster cores.
Q: How are paged calls/results handled?
A: A simple generator is implemented.
- To be clear, "Paging" is eBay's term for repeating a call while advancing a record offset to get all records.
- eBay documentation has the word "Page" in the return type of paging calls.
- Do NOT supply a record "offset" parameter when making a paging call.
- The "limit" parameter is repurposed to control how many records from the entire set you want.
- To get all possible records, don't supply a limit.
- eBay imposes a hard limit on some calls, typically 10,000 records. Use filters to try and keep below the limit. Use try-except to handle going over.
- Avoid exhausting memory by making the call within a "for" loop.
Contributing
- Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
- Follow Uncle Bob's SOLID principles; see a text description & video tutorial.
- Note the error number guide documented in the Error class definition.
- Please make sure to update tests as appropriate.
Legal
- MIT licence.
- "Python" is a trademark of the Python Software Foundation.
- "eBay" is a trademark of eBay Inc.
- Official endorsement by eBay Inc is not claimed or implied.
- The oath code was derived from this eBay Oauth Python Client.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ebay_rest-0.0.5.tar.gz
(1.1 MB
view hashes)
Built Distribution
Close
Hashes for ebay_rest-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03b07230ca31a6ba1dbc53a38f9d16822a86ccdf9350919bbb9640b9ad2efa47 |
|
MD5 | 3da5187ddbc4850ac5e1f064c6564447 |
|
BLAKE2b-256 | bad8fc12e3abeef7025831d7cb11ee7d4b49966c3e5cb8efd7dcfb914009ac78 |