[Python-Dev] Azure event hub network access
I am getting http error 404. I am able to access the site via telnet which eliminates network issues. Here is the code and subsequent errors user/bin/python import sys import azure import socket from azure.servicebus import ( _service_bus_error_handler ) from azure.servicebus.servicebusservice import ( ServiceBusService, ServiceBusSASAuthentication ) from azure.http import ( HTTPRequest, HTTPError ) from azure.http.httpclient import _HTTPClient class EventHubClient(object): def sendMessage(self,body,partition): eventHubHost = pac-ns.servicebus.windows.net httpclient = _HTTPClient(service_instance=self) sasKeyName = pac-pl sasKeyValue = IhkEepQPLfSy9jo6H2Y= authentication = ServiceBusSASAuthentication(sasKeyName,sasKeyValue) request = HTTPRequest() request.method = POST request.host = eventHubHost request.protocol_override = https #request.path = /myhub/publishers/ + partition + /messages?api-version=20 14-05 request.body = body request.headers.append(('Content-Type', 'application/atom+xml;type=entry;cha rset=utf-8')) authentication.sign_request(request, httpclient) request.headers.append(('Content-Length', str(len(request.body status = 0 try: resp = httpclient.perform_request(request) status = resp.status except HTTPError as ex: status = ex.status return status class EventDataParser(object): def getMessage(self,payload,sensorId): host = socket.gethostname() body = { \DeviceId\ : \ + host + \,\SensorData\: [ msgs = payload.split(,) first = True for msg in msgs: # print msg sensorType = msg.split(:)[0] sensorValue = msg.split(:)[1] if first == True: first = False else: body += , body += { \SensorId\ : \ + sensorId + \, \SensorType\ : \ + sen sorType + \, \SensorValue\ : + sensorValue + } body += ]} return body hubClient = EventHubClient() parser = EventDataParser() hostname = socket.gethostname() sensor = sys.argv[2] body = parser.getMessage(sys.argv[1],sensor) hubStatus = hubClient.sendMessage(body,hostname) # return the HTTP status to the caller print hubStatus print hostname print sensor ~/IOT/AZURE$ python send.py temperature:22,humidity:20 deviceid 404 ubuntu deviceid { DeviceId : ubuntu,SensorData: [ { SensorId : deviceid, SensorType : temperature, SensorValue : 22 },{ SensorId : deviceid, SensorType : humidity, SensorValue : 20 }]} -- *Syed Khalid* ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] Encoding of PyFrameObject members
Hi Francis I don't think it's safe to assume f_code is properly filled by the time you might read it, depending a bit where you find the frame object. Are you sure it's not full of garbage? Besides, are you writing a profiler, or what exactly are you doing? On Fri, Feb 6, 2015 at 1:27 AM, Francis Giraldeau francis.girald...@gmail.com wrote: I need to access frame members from within a signal handler for tracing purpose. My first attempt to access co_filename was like this (omitting error checking): PyFrameObject *frame = PyEval_GetFrame(); PyObject *ob = PyUnicode_AsUTF8String(frame-f_code-co_filename) char *str = PyBytes_AsString(ob) However, the function PyUnicode_AsUTF8String() calls PyObject_Malloc(), which is not reentrant. If the signal handler nest over PyObject_Malloc(), it causes a segfault, and it could also deadlock. Instead, I access members directly: char *str = PyUnicode_DATA(frame-f_code-co_filename); size_t len = PyUnicode_GET_DATA_SIZE(frame-f_code-co_filename); Is it safe to assume that unicode objects co_filename and co_name are always UTF-8 data for loaded code? I looked at the PyTokenizer_FromString() and it seems to convert everything to UTF-8 upfront, and I would like to make sure this assumption is valid. Thanks! Francis ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/fijall%40gmail.com ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] Encoding of PyFrameObject members
On Thu Feb 05 2015 at 4:36:30 PM Francis Giraldeau francis.girald...@gmail.com wrote: I need to access frame members from within a signal handler for tracing purpose. My first attempt to access co_filename was like this (omitting error checking): PyFrameObject *frame = PyEval_GetFrame(); PyObject *ob = PyUnicode_AsUTF8String(frame-f_code-co_filename) char *str = PyBytes_AsString(ob) However, the function PyUnicode_AsUTF8String() calls PyObject_Malloc(), which is not reentrant. If the signal handler nest over PyObject_Malloc(), it causes a segfault, and it could also deadlock. Instead, I access members directly: char *str = PyUnicode_DATA(frame-f_code-co_filename); size_t len = PyUnicode_GET_DATA_SIZE(frame-f_code-co_filename); Is it safe to assume that unicode objects co_filename and co_name are always UTF-8 data for loaded code? I looked at the PyTokenizer_FromString() and it seems to convert everything to UTF-8 upfront, and I would like to make sure this assumption is valid. The faulthandler module calls into Python/traceback.c in signal context which has some low level code for extracting something useful from PyUnicode objects without triggering a conversion: https://hg.python.org/cpython/file/f1a82e949fb8/Python/traceback.c#l531 That code is written to write output to a fd. It's much more useful for signal handler tracing data collection from a signal handler if you refactor it to dump its output into a preallocated char* buffer. -gps Thanks! Francis ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ greg%40krypto.org ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] Azure event hub network access
This would be much better posted on the github page for the project. I don't have the URL handy, but if you search github for Python Azure SDK you'll find it. Cheers, Steve Sent from my Windows Phone From: syed khalidmailto:sy...@pacificloud.com Sent: 2/5/2015 21:27 To: python-dev@python.orgmailto:python-dev@python.org Cc: python-l...@python.orgmailto:python-l...@python.org Subject: [Python-Dev] Azure event hub network access I am getting http error 404. I am able to access the site via telnet which eliminates network issues. Here is the code and subsequent errors user/bin/python import sys import azure import socket from azure.servicebus import ( _service_bus_error_handler ) from azure.servicebus.servicebusservice import ( ServiceBusService, ServiceBusSASAuthentication ) from azure.http import ( HTTPRequest, HTTPError ) from azure.http.httpclient import _HTTPClient class EventHubClient(object): def sendMessage(self,body,partition): eventHubHost = pac-ns.servicebus.windows.nethttp://pac-ns.servicebus.windows.net httpclient = _HTTPClient(service_instance=self) sasKeyName = pac-pl sasKeyValue = IhkEepQPLfSy9jo6H2Y= authentication = ServiceBusSASAuthentication(sasKeyName,sasKeyValue) request = HTTPRequest() request.method = POST request.host = eventHubHost request.protocol_override = https #request.path = /myhub/publishers/ + partition + /messages?api-version=20 14-05 request.body = body request.headers.append(('Content-Type', 'application/atom+xml;type=entry;cha rset=utf-8')) authentication.sign_request(request, httpclient) request.headers.append(('Content-Length', str(len(request.body status = 0 try: resp = httpclient.perform_request(request) status = resp.status except HTTPError as ex: status = ex.status return status class EventDataParser(object): def getMessage(self,payload,sensorId): host = socket.gethostname() body = { \DeviceId\ : \ + host + \,\SensorData\: [ msgs = payload.split(,) first = True for msg in msgs: # print msg sensorType = msg.split(:)[0] sensorValue = msg.split(:)[1] if first == True: first = False else: body += , body += { \SensorId\ : \ + sensorId + \, \SensorType\ : \ + sen sorType + \, \SensorValue\ : + sensorValue + } body += ]} return body hubClient = EventHubClient() parser = EventDataParser() hostname = socket.gethostname() sensor = sys.argv[2] body = parser.getMessage(sys.argv[1],sensor) hubStatus = hubClient.sendMessage(body,hostname) # return the HTTP status to the caller print hubStatus print hostname print sensor ~/IOT/AZURE$ python send.py temperature:22,humidity:20 deviceid 404 ubuntu deviceid { DeviceId : ubuntu,SensorData: [ { SensorId : deviceid, SensorType : temperature, SensorValue : 22 },{ SensorId : deviceid, SensorType : humidity, SensorValue : 20 }]} -- Syed Khalid ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] Hi, I am new to this board and have a question
- Original Message - Hi Everyone, I am a core software engineer at Rocket Software Inc. I am working on database system called UniData and Universe. Now we plan to introduce Python as the new programming language to our customer. When I try to build the python 3.4.1 on Red Hat Linux platform. I found some problem and need help. After I run configure and make the python, at the very end, it said some optional modules we missing, Python build finished successfully! The necessary bits to build these optional modules were not found: _bz2 _lzma _ssl _tkinter zlib So, I went to python development guide site and found out I have to download some other source to build the optional modules. Since I am on RH Linux and yum is installed on my Linux box, so I run following command # yum install yum-utils Loaded plugins: product-id, refresh-packagekit, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. WANdisco | 951 B 00:00 WANdisco/primary | 94 kB 00:00 WANdisco 450/450 my_repo | 3.9 kB 00:00 ... Setting up Install Process Package yum-utils-1.1.30-14.el6.noarch already installed and latest version Nothing to do Looks like yum-utils is already installed. Then # yum-builddep python3 Loaded plugins: product-id, refresh-packagekit No such package(s): python3 So what package name should I gave to download the additional source to build the optional module? Thanks! Jianhua Zhou Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA 02451 ■ +1 800.966.3270 ■ +1 781.577.4321 Unsubscribe From Commercial Email – unsubscr...@rocketsoftware.com Manage Your Subscription Preferences - http://info.rocketsoftware.com/GlobalSubscriptionManagementEmailFooter_SubscriptionCenter.html Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy This communication and any attachments may contain confidential information of Rocket Software, Inc. All unauthorized use, disclosure or distribution is prohibited. If you are not the intended recipient, please notify Rocket Software immediately and destroy all copies of this communication. Thank you. Hi Jianhua, this is probably not a question to be asked on this list. If you need some help, please drop me a private mail and I can help you sort this out (I'm the RHEL Python maintainer, so I consider myself pretty knowledgeable about these things ;)). Slavek ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
[Python-Dev] Encoding of PyFrameObject members
I need to access frame members from within a signal handler for tracing purpose. My first attempt to access co_filename was like this (omitting error checking): PyFrameObject *frame = PyEval_GetFrame(); PyObject *ob = PyUnicode_AsUTF8String(frame-f_code-co_filename) char *str = PyBytes_AsString(ob) However, the function PyUnicode_AsUTF8String() calls PyObject_Malloc(), which is not reentrant. If the signal handler nest over PyObject_Malloc(), it causes a segfault, and it could also deadlock. Instead, I access members directly: char *str = PyUnicode_DATA(frame-f_code-co_filename); size_t len = PyUnicode_GET_DATA_SIZE(frame-f_code-co_filename); Is it safe to assume that unicode objects co_filename and co_name are always UTF-8 data for loaded code? I looked at the PyTokenizer_FromString() and it seems to convert everything to UTF-8 upfront, and I would like to make sure this assumption is valid. Thanks! Francis ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] Encoding of PyFrameObject members
On Fri, Feb 6, 2015 at 10:27 AM, Francis Giraldeau francis.girald...@gmail.com wrote: Instead, I access members directly: char *str = PyUnicode_DATA(frame-f_code-co_filename); size_t len = PyUnicode_GET_DATA_SIZE(frame-f_code-co_filename); Is it safe to assume that unicode objects co_filename and co_name are always UTF-8 data for loaded code? I looked at the PyTokenizer_FromString() and it seems to convert everything to UTF-8 upfront, and I would like to make sure this assumption is valid. I don't think you should be using _GET_DATA_SIZE with _DATA - they're mix-and-matched from old and new APIs. If you want a raw, no-allocation look at the data, you'd need to check PyUnicode_KIND and then read Latin-1, UCS-2, or UCS-4 data: https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_1BYTE_DATA (By the way, I don't think the name UCS-1 is part of the Unicode spec. But it's an obvious parallel to UCS-2 and UCS-4.) Getting UTF-8 data out of the structure, if it had indeed been cached, ought to be possible. But I can't see a documented function or macro for doing it. Is there a way? Reaching into the structure and grabbing the utf8 and utf8_length members seems like a bad idea. ChrisA ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] Hi, I am new to this board and have a question
On 5 February 2015 at 12:26, Alexander Belopolsky alexander.belopol...@gmail.com wrote: On Wed, Feb 4, 2015 at 6:18 PM, Jianhua Zhou jz...@rocketsoftware.com wrote: The necessary bits to build these optional modules were not found: _bz2 _lzma _ssl _tkinter zlib So what package name should I gave to download the additional source to build the optional module? Questions like this are really better asked on Red Hat forums, but off the top of my head, you need *-devel packages such as zlib-devel, openssl-devel, etc. It is usually easy to figure out from yum search. I actually have a few suggestions here: 1. The system build deps for Python 2 should be the same as those for Python 3, so yum-builddep python should solve the problem of getting dependencies to do your own build 2. You may also be interested in Slavek's proposal to add a Python 3.4 stack to EPEL: https://fedoraproject.org/wiki/User:Bkabrda/EPEL7_Python3 (Relevant discussions at [1] and [2]) 3. Alternatively, Software Collections may be a better fit for your use case: http://wiki.centos.org/AdditionalResources/Repositories/SCL As Alexander says though, we're getting a bit off topic for upstream python-dev - this is more a topic for EPEL, CentOS or the Red Hat customer portal. Regards, Nick. [1] https://lists.fedoraproject.org/pipermail/epel-devel/2014-December/010548.html [2] https://lists.fedoraproject.org/pipermail/epel-devel/2014-January/009043.html ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] Import Fails in setup.py On Android
While I'm waiting for a response from mobile-sig, I'm going through the documentation (and something called fossies) of importlib. I hope that it's okay to ask some follow up questions...even though I've redirected this post to mobile-sig. If it is, my first question(s) is/are about the import machinery and C-extension modules. Assuming that C-extension modules are ones that include files that are named as *.c, how does the import machinery handle specified shared libraries, such as -ldl? Additionally, how does the import machinery handle the symbols from those libraries...if it does at all? On Tue, Feb 3, 2015 at 12:10 AM, Eric Snow ericsnowcurren...@gmail.com wrote: On Mon, Feb 2, 2015 at 12:36 PM, Cyd Haselton chasel...@gmail.com wrote: After fixing a segfault issue (many thanks Ryan) I'm back to the same issue I was having with Python 2.7.8; the newly built python throws an undefined reference to dlopen when running setup.py...specifically when importing just-built extensions I've managed to narrow the problem down to the following line: importlib._bootstrap._SpecMethods(spec).load() That call is where modules are created (and executed) via the loader designated for the module by the import machinery. So a problem here may simply reflect a problem with the loader. Which module is being imported when you run into trouble? Is it a C-extension module? Also keep in mind that basically everything in importlib._bootstrap is frozen into your Python binary when you build Python (or should be). So if you are seeing any errors related to something missing or broken in importlib._bootstrap, it could be related to the build step where importlib gets frozen. Either way, more info (e.g. a traceback) would be great if you need more help. -eric ___ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com