Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #71136

Re: how to create an external string when binding C to Python?

Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.mixmin.net!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed2a.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail
Return-Path <python-python-list@m.gmane.org>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'python.': 0.02; 'from:addr:yahoo.co.uk': 0.04; 'subject:Python': 0.06; 'exists.': 0.07; 'method.': 0.07; 'modified': 0.07; 'modify': 0.07; 'string': 0.09; 'ascii': 0.09; 'caller': 0.09; 'lawrence': 0.09; 'pep': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'referenced': 0.09; 'subject:create': 0.09; 'subject:string': 0.09; 'url:github': 0.09; 'url:blog': 0.10; 'python': 0.11; 'language.': 0.14; '[2].': 0.16; 'deallocated': 0.16; 'differs': 0.16; 'heap': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'resource.': 0.16; 'subject:when': 0.16; 'underlying': 0.16; 'language': 0.16; 'wrote:': 0.18; 'memory': 0.22; 'this?': 0.23; 'header:User-Agent:1': 0.23; '---': 0.24; "i've": 0.25; 'defined': 0.27; 'header:X-Complaints-To:1': 0.27; 'header:In-Reply-To:1': 0.27; 'function': 0.29; 'external': 0.29; '[1]': 0.29; '[2]': 0.30; 'url:05': 0.31; 'url:python': 0.33; 'link.': 0.33; 'copying': 0.34; "i'd": 0.34; 'except': 0.35; 'but': 0.35; 'possible': 0.36; 'subject:?': 0.36; 'url:org': 0.36; 'should': 0.36; 'clear': 0.37; 'to:addr:python-list': 0.38; 'resource': 0.38; 'does': 0.39; 'delete': 0.39; 'sure': 0.39; 'to:addr:python.org': 0.39; 'received:org': 0.40; 'how': 0.40; 'read': 0.60; 'free': 0.61; 'new': 0.61; 'viruses': 0.61; 'protection': 0.63; 'our': 0.64; 'antivirus': 0.68; 'url:me': 0.69; 'url:2014': 0.84; 'received:89': 0.85
X-Injected-Via-Gmane http://gmane.org/
To python-list@python.org
From Mark Lawrence <breamoreboy@yahoo.co.uk>
Subject Re: how to create an external string when binding C to Python?
Date Fri, 09 May 2014 00:46:56 +0100
References <3afe7539-e3e9-43d6-ab58-1f4aa7895b46@googlegroups.com>
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding 7bit
X-Gmane-NNTP-Posting-Host host-89-240-164-202.as13285.net
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.5.0
In-Reply-To <3afe7539-e3e9-43d6-ab58-1f4aa7895b46@googlegroups.com>
X-Antivirus avast! (VPS 140508-1, 08/05/2014), Outbound message
X-Antivirus-Status Clean
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.9802.1399592834.18130.python-list@python.org> (permalink)
Lines 30
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1399592834 news.xs4all.nl 2848 [2001:888:2000:d::a6]:50647
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:71136

Show key headers only | View raw


On 09/05/2014 00:10, Simon wrote:
> I'd like to make a C memory buffer available inside Python via the Python C/API without copying that memory into Python. How to do this? I've read [1] but it's not clear that this functionality exists. In javascript it's possible using String::NewExternal() [2].
>
> "Creates a new external string using the ASCII data defined in the given resource.
>
> When the external string is no longer live on V8's heap the resource will be disposed by calling its Dispose method. The caller of this function should not otherwise delete or modify the resource. Neither should the underlying buffer be deallocated or modified except through the destructor of the external string resource."
>
> [1] https://docs.python.org/2/c-api/buffer.html
> [2] http://izs.me/v8-docs/classv8_1_1String.html#a07c47bf675b802c550984fa24511a589
>

Does this help 
http://jakevdp.github.io/blog/2014/05/05/introduction-to-the-python-buffer-protocol/ 
?

Also note that the Python 3 buffer protocol differs from that of Python 
2, so make sure that you check out PEP 3118 that's referenced in the 
above link.

-- 
My fellow Pythonistas, ask not what our language can do for you, ask 
what you can do for our language.

Mark Lawrence

---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

how to create an external string when binding C to Python? Simon <simonhf@gmail.com> - 2014-05-08 16:10 -0700
  Re: how to create an external string when binding C to Python? Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-05-09 00:46 +0100
  Re: how to create an external string when binding C to Python? Ian Kelly <ian.g.kelly@gmail.com> - 2014-05-08 19:25 -0600

csiph-web