Git Product home page Git Product logo

azure / azure-sdk-for-python Goto Github PK

View Code? Open in Web Editor NEW
4.3K 407.0 2.7K 646.73 MB

This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.

License: MIT License

Python 99.88% Shell 0.01% Dockerfile 0.01% PowerShell 0.06% HTML 0.01% Batchfile 0.01% CSS 0.01% JavaScript 0.01% Jupyter Notebook 0.03% Jinja 0.01% Bicep 0.01% C 0.01%
python azure azure-sdk hacktoberfest

azure-sdk-for-python's Introduction

Azure SDK for Python

Packages Dependencies DepGraph Python Build Status

This repository is for the active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs or our versioned developer docs.

Disclaimer

Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to #20691

Getting started

For your convenience, each service has a separate set of libraries that you can choose to use instead of one, large Azure package. To get started with a specific library, see the README.md (or README.rst) file located in the library's project folder.

You can find service libraries in the /sdk directory.

Prerequisites

The client libraries are supported on Python 3.8 or later. For more details, please read our page on Azure SDK for Python version support policy.

Packages available

Each service might have a number of libraries available from each of the following categories:

Client: New Releases

New wave of packages that we are announcing as GA and several that are currently releasing in preview. These libraries allow you to use and consume existing resources and interact with them, for example: upload a blob. These libraries share several core functionalities such as: retries, logging, transport protocols, authentication protocols, etc. that can be found in the azure-core library. You can learn more about these libraries by reading guidelines that they follow here.

You can find the most up to date list of all of the new packages on our page

NOTE: If you need to ensure your code is ready for production use one of the stable, non-preview libraries.

Client: Previous Versions

Last stable versions of packages that have been provided for usage with Azure and are production-ready. These libraries provide you with similar functionalities to the Preview ones as they allow you to use and consume existing resources and interact with them, for example: upload a blob. They might not implement the guidelines or have the same feature set as the November releases. They do however offer wider coverage of services.

Management: New Releases

A new set of management libraries that follow the Azure SDK Design Guidelines for Python are now available. These new libraries provide a number of core capabilities that are shared amongst all Azure SDKs, including the intuitive Azure Identity library, an HTTP Pipeline with custom policies, error-handling, distributed tracing, and much more. Documentation and code samples for these new libraries can be found here. In addition, a migration guide that shows how to transition from older versions of libraries is located here.

You can find the most up to date list of all of the new packages on our page

NOTE: If you need to ensure your code is ready for production use one of the stable, non-preview libraries. Also, if you are experiencing authentication issues with the management libraries after upgrading certain packages, it's possible that you upgraded to the new versions of SDK without changing the authentication code, please refer to the migration guide mentioned above for proper instructions.

Management: Previous Versions

For a complete list of management libraries that enable you to provision and manage Azure resources, please check here. They might not have the same feature set as the new releases but they do offer wider coverage of services. Management libraries can be identified by namespaces that start with azure-mgmt-, e.g. azure-mgmt-compute

Need help?

Community

  • Chat with other community members Join the chat at https://gitter.im/azure/azure-sdk-for-python

Reporting security issues and security bugs

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) [email protected]. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.

Contributing

For details on contributing to this repository, see the contributing guide.

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Impressions

azure-sdk-for-python's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azure-sdk-for-python's Issues

Table name validation

It seems that you are unable to use punctuation in table names, although it isn't clear what is and isn't allowed.

>>> ts = TableService()
>>> ts.create_table("foo")
True
>>> ts.create_table("routing_table")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\azure\storage\tableservice.py", line 135, in create_table
    _dont_fail_on_exist(e)
  File "C:\Python27\lib\site-packages\azure\__init__.py", line 453, in _dont_fail_on_exist
    raise error
azure.WindowsAzureError: Unknown error (Bad Request)
>>> ts.create_table("routingtable")
True

It would be nice if some sort of client-side validation was done, if possible.

TableEnumResult is unused

Looks like query_tables returns a list, instead of using this class. Code coverage shows that none of this code gets executed.

class TableEnumResult(EnumResultsBase): def **init**(): EnumResultsBase.**init**(self) self.tables = _list_of(Table) def __iter__(self): return iter(self.tables) def **len**(self): return len(self.tables) def **getitem**(self, index): return self.tables[index]

max_size_in_mega_bytes vs max_size_in_megabytes

There is an inconsistency in the library for this field name. It is used in service bus Topic and Queue classes. In one, it uses max_size_in_mega_bytes, in the other it’s max_size_in_megabytes.

In addition to the inconsistency, there is a bug in the convert_topic_to_xml function:

    if topic.max_size_in_mega_bytes is not None:
        topic_body += ''.join(['<MaxSizeInMegabytes>', str(topic.max_size_in_megabytes), '</MaxSizeInMegabytes>'])

I propose we use max_size_in_megabytes everywhere for the field name. The HowTo guides for Topic and Queue are both showing code examples that use max_size_in_megabytes (so one of the guides is currently wrong).

Feed class isn't used

from azure_init_.py

class Feed:
def init(self, type):
self.type = type

And then there are 4 import statements for Feed. But it isn't actually used.

can't create rule action of type sql

There are 2 types of action for service bus subscription rule: empty and sql

I have not been able to get sql action to work.

In .NET, the action types are named 'EmptyRuleAction' and 'SqlRuleAction'. If you create one from .NET and query it back in Python, that's what you will see.

In Python, it appears that the action types are 'EmptyRuleAction' and 'SqlFilterAction'. However, 'SqlFilterAction' doesn't work. I have also tried 'SqlRuleAction' and that doesn't work either (changing the code in convert_rule_to_xml to use 'SqlRuleAction' instead).

Here's a code snippet, this generates a 'bad request' error:

rule1 = Rule()
rule1.action_type = 'SqlFilterAction'
rule1.action_expression = "set foo='low'"
created = self.sbs.create_rule(self.topic_name, 'MySubscription', 'MyRule1', rule1)

New in 2012-02-12: error using list_blobs with include='copy'

According to http://msdn.microsoft.com/en-us/library/windowsazure/dd135734

'copy' is a valid value for the 'include' parameter. I get an error in the newly created test
test_list_blobs_with_include_copy
(which is commented out right now)

The other 3 valid values are working (snapshots,metadata,uncommittedblobs). Not sure if this is due to 'copy' being a new option or not.

ERROR: test_list_blobs_with_include_copy (main.BlobServiceTest)

Traceback (most recent call last):
File "C:\Users\a-huvalo\Documents\Visual Studio 2010\Projects\PTVS\Open_Source\Incubation\windowsazure\test\azuretest\test_blobservice.py", line 724, in test_list_blobs_with_include_copy
blobs = self.bc.list_blobs(self.container_name, include='copy')
File "C:\Users\a-huvalo\Documents\Visual Studio 2010\Projects\PTVS\Open_Source\Incubation\windowsazure\src\azure\storage\blobservice.py", line 224, in list_blobs
response = self._perform_request(request)
File "C:\Users\a-huvalo\Documents\Visual Studio 2010\Projects\PTVS\Open_Source\Incubation\windowsazure\src\azure\storage\storageclient.py", line 117, in perform_request
storage_error_handler(e)
File "C:\Users\a-huvalo\Documents\Visual Studio 2010\Projects\PTVS\Open_Source\Incubation\windowsazure\src\azure\storage__init
.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Value for one of the query parameters specified in the request URI is invalid.)

list_containers - how to specify requested metadata

list_containers has a parameter named 'include' which is used to request that metadata for the containers be included in the results.

It is unclear what this parameter is supposed to be, and whether it works. See unit tests: test_list_containers_with_include_metadata_single, test_list_containers_with_include_metadata_multiple, test_list_containers_with_include_metadata_empty.

TableService batch functionality doesn't work with unicode credentials

If you initialize your TableService instance by passing unicode strings for the account key and name, then insert some entities in a begin_batch/commit_batch operation, the entities don't get added. There is no exception thrown, but if you query the entity back, you won't get anything.

It works fine if you pass in ascii string to the TableService constructor.

result of get_page_ranges is not iterable

PageList class implements iter but it does not work.

Here's how to reproduce:

ranges = self.bc.get_page_ranges(self.container_name, 'blob1') for range in ranges: pass

Here's the error:

TypeError: iter returned non-iterator of type 'list'

error messages

in init.py (azure)

_ERROR_DUPLICATE_ROW_KEY_IN_BATCH message looks wrong
Queue is not Found -> Queue was not found
Topic is not Found -> Topic was not found

set_table_service_properties test failure on linux/mac

The following test fails on mac and linux (Ubuntu 12.02 Server on Azure VM). I was able to reproduce 3 out of 3 times.

FAIL: test_sanity_get_set_table_service_properties (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 122, in test_sanity_get_set_table_service_properties
self.assertEquals(value, cur)
AssertionError: False != True

BlockList class is obsolete

We no longer use this class to submit block list. We now use a list of strings. Not to be confused with BlobBlockList, which is used to receive block lists.

The code that is obsolete is:

class BlockList(WindowsAzureData): ''' BlockList used to submit block list. '''
def __init__(self):
    self.committed = []
    self.uncommitted = []
    self.latest = []

can't use boolean and float data types in service bus message custom properties

Here's a code snippet which uses string, integer, boolean, 64bit integer, floating point, datetime

props = {'hello':'world', 'foo':42, 'active':True, 'deceased':False, 'large':8555111000, 'floating':3.14, 'dob':datetime(2011, 12, 14)}
sent_msg = Message('message with properties', custom_properties=props)
self.sbs.send_queue_message(self.queue_name, sent_msg)

The ones causing problems right now are booleans and floating point, the others are working fine.

See the newly updated test_send_queue_message_with_custom_message_properties (the failing code is commented out)

can't pass booleans to service bus create_queue,create_topic,create_subscription

When setting the options to pass to these functions, you have to pass in booleans as strings ie. 'false','true' otherwise if you pass in real booleans then get serialized as 'False','True' which causes a failure.

The following unit tests are affected (they currently use strings):
test_create_queue_with_options
test_create_topic_with_options
test_create_subscription_with_options

how to specify continuation for query_tables and query_entities

Currently there is functionality to set a maximum for the number of tables/entities returned using the 'top' parameter.

However, it is unclear whether or not we have the ability to specify which 'page' we are interested in. Looking at the parameters for query_tables and query_entities, it doesn't look like that functionality is exposed.

The documentation at http://msdn.microsoft.com/en-us/library/windowsazure/dd135718 describes how this works for the REST API.

add constructor parameters to data classes

Data classes for storage and service bus, such as Queue, Topic, Subscription, Rule, etc. should have additional constructor parameters with default values. This will allow creation of an instance in one statement. This should be done for the data classes that are instantiated by the user.

Old:
rule = Rule()
rule.filter_type = 'SqlFilter'
rule.filter_expression = 'messagenumber > 3'

New:
rule = Rule(filter_type='SqlFilter', filter_expression='messagenumber>3')

New (alt):
rule = Rule('SqlFilter', 'messagenumber>3')

query_entities() doesn't work for retrieving data in unicode

I've encountered a problem when trying to retrieve data from a table which contains unicoded chars (hebrew in my case).
When using the get_entity() API on the table service, i had no problem getting the data correctly.
When using query_entities() on the same table with the same data i got an encoding error:

'ascii' codec can't encode characters in position 897-900: ordinal not in range(128)

Why should the output of query_entities() encounter an encoding problem when get_entity() doesn't?
Again, the table i've tested contains 1 row that has 1 column with a word in hebrew - get_entity() works, query_entities() fails.

problem with if_match parameter in table storage

I am not able to get that to work, I do not know if I am using it correctly.

sent_entity = {'PartitionKey':'MyPartition','RowKey':'1','age':'abc','sex':'female','sign':'aquarius','birthday':datetime(1991,10,04)}
resp = self.tc.merge_entity(self.table_name, 'MyPartition', '1', sent_entity, if_match="sex eq 'male'")

I have been using the same syntax that is used for the filter parameter, but that is not working.

WindowsAzureError: Unknown error (Bad Request)

The following new tests are affected:
test_delete_entity_with_if_doesnt_match
test_delete_entity_with_if_matches
test_merge_entity_with_if_doesnt_match
test_merge_entity_with_if_matches
test_update_entity_with_if_doesnt_match
test_update_entity_with_if_matches

snapshot_blob does not return anything

snapshot_blob() needs to return a value that we use to pass in for the snapshot parameter to get_blob().

From the documentation at
http://msdn.microsoft.com/en-us/library/windowsazure/ee691971

x-ms-snapshot:

This header returns a DateTime value that uniquely identifies the snapshot. The value of this header indicates the snapshot version, and may be used in subsequent requests to access the snapshot. Note that this value is opaque.

I have added a test, currently commented out, that demonstrate how this may work: test_get_blob_with_snapshot

Need to change the default timeout for httprequest on windows

The default timeouts for winhttp are not large enough for some operations.

For example, when reading from service bus, it is possible to give azure a timeout to wait for availability of a message in the queue (let's say 40 secs). If that timeout is larger than the winhttp timeout (30 secs), you'll get a timeout error from winhttp after 30 secs.

There is a limitation of 60 secs for any Azure calls through http:

"When using http, the load balancer will kill any connection after a minute of inactivity. "

So we can probably just set the timeouts to 60-70 secs.

Blob service documentation on README outdated

Hello. In README,

from azure.storage import BlobService
blob_service = BlobService(account_name, account_key)
blob_service.put_blob('taskcontainer', 'task1', 
blobService = azure.createBlobService()
blobService.put_blob('taskcontainer', 'task1', file('task1-upload.txt').read())

There are incomplete and nonsense lines here, except that, put_blob takes a 4th parameter x_ms_blob_type.

And may I ask why did you choose content_m_d5 variable name over content_md5 ?

list_containers doesn't return metadata

when the include parameter is set to 'metadata', each container is supposed to have its metadata included. Right now what happens is that the metadata instance is not None, but it doesn't have any of the expected data.

test for this is: test_list_containers_with_include_metadata

Unable to open package file for Mac OS X download

Hey all,

Awesome work -- this is super exciting news for Windows Azure! I'd love to present this to the Vancouver Azure Meetup group some time soon!

That said, I just wanted to start hacking on some Python for Windows Azure. I am currently on Mac OS X Mountain Lion (latest) -- couldn't run the package for the Mac OS X Installer: https://www.windowsazure.com/en-us/develop/python/.

This is the error message:

“azuresdk-v0.6.1.pkg” can’t be opened because it is from an unidentified developer.

service bus - delete and unlock message no longer work

Looks like a regression in service bus, here are the errors:

ERROR: test_receive_queue_message_delete (azuretest.test_servicebusservice.ServiceBusTest)

Traceback (most recent call last):
File "azuretest/test_servicebusservice.py", line 320, in test_receive_queue_message_delete
received_msg.delete()
File "/Users/huguesvalois/Documents/azure/src/azure/servicebus/init.py", line 167, in delete
self.service_bus_service.delete_queue_message(self._queue_name, self.broker_properties['SequenceNumber'], self.broker_properties['LockToken'])
TypeError: string indices must be integers, not str

ERROR: test_receive_queue_message_unlock (azuretest.test_servicebusservice.ServiceBusTest)

Traceback (most recent call last):
File "azuretest/test_servicebusservice.py", line 333, in test_receive_queue_message_unlock
received_msg.unlock()
File "/Users/huguesvalois/Documents/azure/src/azure/servicebus/init.py", line 176, in unlock
self.service_bus_service.unlock_queue_message(self._queue_name, self.broker_properties['SequenceNumber'], self.broker_properties['LockToken'])
TypeError: string indices must be integers, not str

ERROR: test_receive_subscription_message_delete (azuretest.test_servicebusservice.ServiceBusTest)

Traceback (most recent call last):
File "azuretest/test_servicebusservice.py", line 994, in test_receive_subscription_message_delete
received_msg.delete()
File "/Users/huguesvalois/Documents/azure/src/azure/servicebus/init.py", line 169, in delete
self.service_bus_service.delete_subscription_message(self._topic_name, self._subscription_name, self.broker_properties['SequenceNumber'], self.broker_properties['LockToken'])
TypeError: string indices must be integers, not str

ERROR: test_receive_subscription_message_unlock (azuretest.test_servicebusservice.ServiceBusTest)

Traceback (most recent call last):
File "azuretest/test_servicebusservice.py", line 1008, in test_receive_subscription_message_unlock
received_msg.unlock()
File "/Users/huguesvalois/Documents/azure/src/azure/servicebus/init.py", line 178, in unlock
self.service_bus_service.unlock_subscription_message(self._topic_name, self._subscription_name, self.broker_properties['SequenceNumber'], self.broker_properties['LockToken'])
TypeError: string indices must be integers, not str

ERROR: test_send_queue_message_with_custom_message_properties (azuretest.test_servicebusservice.ServiceBusTest)

Traceback (most recent call last):
File "azuretest/test_servicebusservice.py", line 372, in test_send_queue_message_with_custom_message_properties
received_msg.delete()
File "/Users/huguesvalois/Documents/azure/src/azure/servicebus/init.py", line 167, in delete
self.service_bus_service.delete_queue_message(self._queue_name, self.broker_properties['SequenceNumber'], self.broker_properties['LockToken'])
TypeError: string indices must be integers, not str

ERROR: test_send_queue_message_with_custom_message_type (azuretest.test_servicebusservice.ServiceBusTest)

Traceback (most recent call last):
File "azuretest/test_servicebusservice.py", line 351, in test_send_queue_message_with_custom_message_type
received_msg.delete()
File "/Users/huguesvalois/Documents/azure/src/azure/servicebus/init.py", line 167, in delete
self.service_bus_service.delete_queue_message(self._queue_name, self.broker_properties['SequenceNumber'], self.broker_properties['LockToken'])
TypeError: string indices must be integers, not str

query_tables with parameter table_name doesn't work

If you specify a table name when calling query_tables, you do not get back any results (given that the table exists).

See the latest version of the unit tests, in test_tableservice.py, sanity_query_tables(). The code that fails is currently commented out.

Make hardcoded paths configurable

Make the following urls configurable.

BLOB_SERVICE_HOST_BASE = '.blob.core.windows.net'
QUEUE_SERVICE_HOST_BASE = ...
TABLE_SERVICE_HOST_BASE = ...
SERVICE_BUS_HOST_BASE = ...

Make them the default values, but let the user override the defaults when instantiating the service classes.

service bus: enable_dead_lettering_on_message_expiration option when creating queue

setting the enable_dead_lettering_on_message_expiration member on the Queue when calling service bus create_queue results in an error.

MSDN doc at http://msdn.microsoft.com/en-us/library/windowsazure/hh780727

shows an example with xml that uses element name 'DeadLetteringOnMessageExpiration'
but the azure library code uses 'EnableDeadLetteringOnMessageExpiration' which may explain the error.

See test_create_queue_with_options in test_servicebusservice.py, make sure you have the latest version where this member assignment is commented out.

create_queue (storage) should fail

When calling create_queue with an existing queue and requesting a failure on exist, it does not throw when it should.
When calling create_queue with an existing queue, it returns True when it should return False.

See the new unit tests in test_queueservice.py:

test_create_queue_already_exist
test_create_queue_fail_on_exist

By the way, this doesn't seem to be a timing issue. Adding time.sleep(180) between the 2 calls to create_queue in those tests did not make any difference.

suspicious uncovered code in _create_message (service bus __init__)

The second line in this code snippet is not covered according to code coverage result. If you know how to trigger it, please mention it here. If it ever gets executed, it will not work because broker_properties is incorrectly getting passed for the message_type parameter.

if message_type == None: 
message = Message(respbody, service_instance, message_location, custom_properties, broker_properties) 
else: 
message = Message(respbody, service_instance, message_location, custom_properties, message_type, broker_properties) 

result of get_container_acl is not iterable

SignedIdentifiers class implements iter but it doesn't work.

acl = self.bc.get_container_acl(self.container_name) for signed_identifier in acl: pass

TypeError: iter() returned non-iterator of type 'list'

Metadata class isn't used

This isn't used anymore.

class Metadata(WindowsAzureData):
''' Metadata class. '''

def __init__(self):
    self.metadata_name = ''

BlobService example is missing an argument

In the Readme there's a line

blobService.put_blob('taskcontainer', 'task1', file('task1-upload.txt').read())

That results in a TypeError:

TypeError: put_blob() takes at least 5 arguments (4 given)

The example seems to be missing the "x_ms_blob_type" argument.

content-language dict key is lowercase on mac, mixed case on windows

Test_blobservice.py, test_set_blob_properties_with_existing_blob fails on mac.

def test_set_blob_properties_with_existing_blob(self):

Arrange

self._create_container_and_block_blob(self.container_name, 'blob1', 'hello world')

Act

resp = self.bc.set_blob_properties(self.container_name, 'blob1', x_ms_blob_content_language='spanish')

# Assert
self.assertIsNone(resp)
props = self.bc.get_blob_properties(self.container_name, 'blob1')
self.assertEquals(props['Content-Language'], 'spanish')

The reason is that on mac, the props dictionary has a key named 'content-language' in all lowercase, and it's mixed case on windows.

Should cache the http connection object

As a performance optimization, it would be nice to have _HTTPClient.get_connection cache the object it returns instead of creating a new one for every request. It could be cached per-thread.

unnecessary check for None

In servicebusservice.py and in storageclient.py the function:

def _perform_request(self, request):

does not need to check:

if not resp:
return None

Both functions can be changed to the following:

def _perform_request(self, request):
try:
return self._filter(request)
except HTTPError as e:
return _service_bus_error_handler(e)

table service failures on mac

These unit tests failure appear to be mac specific:

ERROR: test_batch_different_partition_operations_fail (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 1007, in test_batch_different_partition_operations_fail
self.tc.insert_entity(self.table_name, entity)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_batch_same_row_operations_fail (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 987, in test_batch_same_row_operations_fail
self.tc.insert_entity(self.table_name, entity)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_delete_entity (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 689, in test_delete_entity
self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_delete_entity_with_if_doesnt_match (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 723, in test_delete_entity_with_if_doesnt_match
entities = self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_delete_entity_with_if_matches (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 711, in test_delete_entity_with_if_matches
entities = self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_get_entity (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 443, in test_get_entity
self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_get_entity_with_select (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 465, in test_get_entity_with_select
self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_insert_entity_class_instance (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 426, in test_insert_entity_class_instance
resp = self.tc.insert_entity(self.table_name, entity)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_insert_entity_conflict (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 433, in test_insert_entity_conflict
self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_insert_entity_dictionary (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 415, in test_insert_entity_dictionary
resp = self.tc.insert_entity(self.table_name, dict)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_insert_or_merge_entity_with_existing_entity (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 589, in test_insert_or_merge_entity_with_existing_entity
self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_insert_or_replace_entity_with_existing_entity (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 615, in test_insert_or_replace_entity_with_existing_entity
self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_merge_entity (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 641, in test_merge_entity
self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_merge_entity_with_if_doesnt_match (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 678, in test_merge_entity_with_if_doesnt_match
entities = self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_merge_entity_with_if_matches (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 665, in test_merge_entity_with_if_matches
entities = self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_query_entities (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 479, in test_query_entities
self._create_table_with_default_entities(self.table_name, 2)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_query_entities_with_filter (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 494, in test_query_entities_with_filter
self._create_table_with_default_entities(self.table_name, 2)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_query_entities_with_select (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 508, in test_query_entities_with_select
self._create_table_with_default_entities(self.table_name, 2)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_query_entities_with_top (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 523, in test_query_entities_with_top
self._create_table_with_default_entities(self.table_name, 3)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_query_entities_with_top_and_next (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 533, in test_query_entities_with_top_and_next
self._create_table_with_default_entities(self.table_name, 5)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_update_entity (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 552, in test_update_entity
self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_update_entity_with_if_doesnt_match (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 578, in test_update_entity_with_if_doesnt_match
entities = self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

ERROR: test_update_entity_with_if_matches (azuretest.test_tableservice.StorageTest)

Traceback (most recent call last):
File "azuretest/test_tableservice.py", line 565, in test_update_entity_with_if_matches
entities = self._create_table_with_default_entities(self.table_name, 1)
File "azuretest/test_tableservice.py", line 79, in _create_table_with_default_entities
entities.append(self.tc.insert_entity(table_name, self._create_default_entity_dict('MyPartition', str(i))))
File "/Users/huguesvalois/Documents/azure/src/azure/storage/tableservice.py", line 235, in insert_entity
response = self._perform_request(request)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/storageclient.py", line 117, in _perform_request
_storage_error_handler(e)
File "/Users/huguesvalois/Documents/azure/src/azure/storage/init.py", line 701, in _storage_error_handler
raise WindowsAzureError(azure._ERROR_UNKNOWN % http_error.message)
WindowsAzureError: Unknown error (Bad Request)

problem with set_container_acl

There may be an issue in the library, or this may be that the code I wrote is using it incorrectly.

si = SignedIdentifier()
si.id = 'testid'
si.access_policy.star = '2011-10-11'
si.access_policy.expiry = '2011-10-12'
si.access_policy.permission = 'r'
identifiers = SignedIdentifiers()
identifiers.signed_identifiers.append(si)
self.bc.set_container_acl(self.container_name, identifiers)

This results in:

WindowsAzureError: Unknown error (XML specified is not syntactically valid.)

backwards compatibility code for service bus topic max_size_in_mega_bytes

The following code in init(azure.servicebus) doesn't seem to be working:

@property def max_size_in_mega_bytes(self): import warnings warnings.warn('This attribute has been changed to max_size_in_megabytes.') return self.max_size_in_megabytes

I would have expected that it would prevent an ERROR, but that isn't the case.

topic_options = Topic()
topic_options.max_size_in_megabytes = 5120
val = topic_options.max_size_in_mega_bytes

The last line generates an error that the attribute doesn't exist.

Service bus cache of tokens doesn't support multiple creds in same app

The cache of tokens '_tokens' in servicebus' init.py is a global variable (dictionary). A token is created based on the request host, path, issuer and account key. But the key for the cache is only using the request host and path. So if you try to use 2 instances of ServiceBusService, with different credentials, the cache will eventually return tokens for the wrong issuer/account key.

The key cache 'wrap_scope' should include the issuer and account_key, or the cache '_tokens' needs to be a field of ServiceBusService instead of a global variable.

Edm.Binary and null support in table storage entities

I do not know if the null support is complete, and if that translates into entity properties being None. One thing I have noticed is that sending an entity with a None property and then querying for that entity back will give you an entity that doesn't have that Property.

In any case, this issue is a reminder for us to review Edm.Binary, null and None.

get_blob() - where is the md5?

get_blob has a parameter named x_ms_range_get_content_md5. When used in conjonction with x_ms_range parameter, it returns the md5 of the specified range in the response headers.

Right now the blob itself is the return value of get_blob and everything in the response headers is thrown away. So how can I get access to the md5 that was requested?

Note that If we need to change the return type of get_blob, this will be a breaking change.

Code snippet from the new (commented out) test: test_get_blob_with_range_and_get_content_md5

blob = self.bc.get_blob(self.container_name, 'blob1', x_ms_range='bytes=0-5', x_ms_range_get_content_md5='true')
self.assertEqual(type(blob), str)
self.assertEquals(blob, 'hello world')

md5 isn't returned...

Also, let's make sure we allow True/False in addition to 'true' / 'false'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.