معرفی شرکت ها


efidgy-0.15


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Python bindings to efidgy services.
ویژگی مقدار
سیستم عامل -
نام فایل efidgy-0.15
نام efidgy
نسخه کتابخانه 0.15
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Vasily Stepanov
ایمیل نویسنده vasily.stepanov@efidgy.com
آدرس صفحه اصلی https://efidgy.com/
آدرس اینترنتی https://pypi.org/project/efidgy/
مجوز GPL3
# efidgy Python bindings to efidgy services. ## Overview ### Environment Environment in terms of efidgy package is a set of settings to work with efidgy backend. Theese settings includes **customer code** and **access token** that will be used to communicate with backend. ### Unit System If you will not set the unit system directly, efidgy will use current user settings: [console.efidgy.com/profile](https://console.efidgy.com/profile) Anyway, it is a good practice to define the unit system in your code: ``` python efidgy.env = efidgy.env.override( unit_system=efidgy.models.UnitSystem.IMPERIAL, ) ``` ### Credentials efidgy.env is initialized with settings fetched from the shell environment. The following environment variables are used: * EFIDGY_ACCESS_TOKEN -- You can get one at [console.efidgy.com/profile/company](https://console.efidgy.com/profile/company) * EFIDGY_CUSTOMER_CODE -- See [console.efidgy.com/profile/tokens](https://console.efidgy.com/profile/tokens) You can always override code and/or token with the code like this: ``` python efidgy.env = efidgy.env.override( code='hardcoded customer code', ) ``` ## API documentation Find out more at: [efidgy.com/docs](https://efidgy.com/docs) ## Sample usage ``` sh export EFIDGY_CUSTOMER_CODE=code # https://console.efidgy.com/profile/company export EFIDGY_ACCESS_TOKEN=token # https://console.efidgy.com/profile/tokens ``` ### Sync API ``` python import datetime import efidgy def create_project(): project = efidgy.models.Project.service.create( name='Demo', currency='USD', project_type=efidgy.models.ProjectTypeCode.IDD_OR, shared_mode=efidgy.models.SharedMode.PRIVATE, ) store_address = '6133 Broadway Terr., Oakland, CA 94618, USA' lat, lon = efidgy.tools.geocode(store_address) store = efidgy.models.idd_or.Store.service.create( project=project, address=store_address, lat=lat, lon=lon, name='Delivery Inc.', open_time=datetime.time(8, 0), close_time=datetime.time(18, 0), ) efidgy.models.idd_or.Vehicle.service.create( project=project, store=store, name='Gary Bailey', fuel_consumption=11.76, fuel_price=3.25, salary_per_duration=21, duration_limit=datetime.timedelta(hours=9), ) order_address = '1 Downey Pl, Oakland, CA 94610, USA' lat, lon = efidgy.tools.geocode(order_address) efidgy.models.idd_or.Order.service.create( project=project, store=store, name='#00001', address=order_address, lat=lat, lon=lon, ready_time=datetime.time(8, 0), delivery_time_from=datetime.time(12, 0), delivery_time_to=datetime.time(16, 0), load_duration=datetime.timedelta(minutes=1), unload_duration=datetime.timedelta(minutes=5), items=1, volume=3.53, weight=22.05, ) return project def solve(project): project.computate() solutions = efidgy.models.Solution.service.all( project=project, ) if not solutions: return None return solutions[0] def report(project, solution): print('Total Cost: {cost:.2f}{currency}'.format( cost=solution.cost, currency=project.currency.symbol, )) vehicles = efidgy.models.idd_or.Vehicle.service.all( project=project, solution=solution, ) for vehicle in vehicles: print('{vehicle} Schedule'.format( vehicle=vehicle.name, )) if vehicle.route is not None: arr = vehicle.route.start_time for schedule in vehicle.route.schedule: dep = schedule.departure_time print('{at}\t{arr}\t{dep}'.format( at=schedule.start_point.name, arr=arr, dep=dep, )) arr = schedule.arrival_time if vehicle.route.schedule: print('{at}\t{arr}\t{dep}'.format( at=vehicle.route.schedule[-1].end_point.name, arr=vehicle.route.schedule[-1].arrival_time, dep='', )) def main(): project = create_project() solution = solve(project) if solution: report(project, solution) if __name__ == '__main__': main() ``` ### Output ``` Total Cost: 12.51$ Gary Bailey Schedule Delivery Inc. 15:45:00 15:46:00 #00001 15:55:00 16:00:00 Delivery Inc. 16:09:00 ``` ### Async API ``` python import datetime import asyncio import efidgy.asyncapi as efidgy async def create_project(): project = await efidgy.models.Project.service.create( name='Demo', currency='USD', project_type=efidgy.models.ProjectTypeCode.IDD_OR, shared_mode=efidgy.models.SharedMode.PRIVATE, ) store_address = '6133 Broadway Terr., Oakland, CA 94618, USA' lat, lon = await efidgy.tools.geocode(store_address) store = await efidgy.models.idd_or.Store.service.create( project=project, address=store_address, lat=lat, lon=lon, name='Delivery Inc.', open_time=datetime.time(8, 0), close_time=datetime.time(18, 0), ) await efidgy.models.idd_or.Vehicle.service.create( project=project, store=store, name='Gary Bailey', fuel_consumption=11.76, fuel_price=3.25, salary_per_duration=21, duration_limit=datetime.timedelta(hours=9), ) order_address = '1 Downey Pl, Oakland, CA 94610, USA' lat, lon = await efidgy.tools.geocode(order_address) await efidgy.models.idd_or.Order.service.create( project=project, store=store, name='#00001', address=order_address, lat=lat, lon=lon, ready_time=datetime.time(8, 0), delivery_time_from=datetime.time(12, 0), delivery_time_to=datetime.time(16, 0), load_duration=datetime.timedelta(minutes=1), unload_duration=datetime.timedelta(minutes=5), items=1, volume=3.53, weight=22.05, ) return project async def solve(project): await project.computate() solutions = await efidgy.models.Solution.service.all( project=project, ) if not solutions: return None return solutions[0] async def report(project, solution): print('Total Cost: {cost:.2f}{currency}'.format( cost=solution.cost, currency=project.currency.symbol, )) vehicles = await efidgy.models.idd_or.Vehicle.service.all( project=project, solution=solution, ) for vehicle in vehicles: print('{vehicle} Schedule'.format( vehicle=vehicle.name, )) if vehicle.route is not None: arr = vehicle.route.start_time for schedule in vehicle.route.schedule: dep = schedule.departure_time print('{at}\t{arr}\t{dep}'.format( at=schedule.start_point.name, arr=arr, dep=dep, )) arr = schedule.arrival_time if vehicle.route.schedule: print('{at}\t{arr}\t{dep}'.format( at=vehicle.route.schedule[-1].end_point.name, arr=vehicle.route.schedule[-1].arrival_time, dep='', )) async def main(): project = await create_project() solution = await solve(project) if solution: await report(project, solution) if __name__ == '__main__': asyncio.run(main()) ``` ### Output ``` Total Cost: 12.51$ Gary Bailey Schedule Delivery Inc. 15:45:00 15:46:00 #00001 15:55:00 16:00:00 Delivery Inc. 16:09:00 ```


زبان مورد نیاز

مقدار نام
>=3.6 Python


نحوه نصب


نصب پکیج whl efidgy-0.15:

    pip install efidgy-0.15.whl


نصب پکیج tar.gz efidgy-0.15:

    pip install efidgy-0.15.tar.gz