Skip to content

chiragrao27/python-cstring

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cstring Module

Alternate string representation to the built-in str type.

  • Uses C-string representation internally.
  • Memory is allocated in one continuous buffer to reduce pointer-hopping.
  • UTF-8 encoding.
  • len returns size in bytes (not including terminating zero-byte).
  • Random access (to bytes, not Unicode code points) is supported with indices and slices.

Methods

count(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.count

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

find(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.find

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

index(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.index

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

rfind(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.rfind

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

rindex(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.rindex

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

startswith(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.startswith

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

endswith(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.endswith

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

TODO

  • Write docs (see str type docs)
  • Write docstrings
  • Fill out setup.py
  • Allow initialization from bytes, bytearray, other cstrings, memoryview?, other?
  • Read __cstring__ "dunder" on objects, if available?
  • Implement iter (iterate over Unicode code points, "runes")
  • Implement str methods
  • Include start/end indexes as byte indexes? Calculate code points? Or just don't support?
  • Implement buffer interface?
  • Decide subclassing protocol

About

Provides a Python string implementation based on C's nul-terminated strings.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 67.0%
  • Python 33.0%
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy