https://github.com/seperman/bad-ideas
Python: Bad Ideas
https://github.com/seperman/bad-ideas
bad bad-idea filter garbage-collector grep ideas memory-leak python resurrect
Last synced: 7 months ago
JSON representation
Python: Bad Ideas
- Host: GitHub
- URL: https://github.com/seperman/bad-ideas
- Owner: seperman
- License: mit
- Created: 2017-04-04T19:20:39.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-05-29T04:56:47.000Z (about 9 years ago)
- Last Synced: 2025-09-27T07:15:12.368Z (8 months ago)
- Topics: bad, bad-idea, filter, garbage-collector, grep, ideas, memory-leak, python, resurrect
- Language: Python
- Homepage: http://zepworks.com
- Size: 10.7 KB
- Stars: 12
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bad Ideas

[](https://travis-ci.org/seperman/bad-ideas)
### *It is a good idea to install bad ideas!*
Bad ideas include a collection of bad Python 3 ideas. This package is not compatible with Python 2.
Bad Ideas are prepared for PyCon 2017 talk: [Magic Method, on the wall, who, now, is the `__fairest__` one of all?](https://us.pycon.org/2017/schedule/presentation/486/). You can read the proposal for this talk on the [Zepworks blog](http://zepworks.com/blog/magic-method-on-the-wall/)
If you have any bad ideas that you want to be added here, let me know!
# Disclaimer
This code is for educational purposes ONLY. Use it at your own risk.
# Install
`pip install bad-ideas`
# Usage
## Type less by in-place editing of numbers
Avoid the carpal tunnels, use mutable integers!
```py
>>> from bad import number
>>> num = number(10)
>>> num + 3
13
>>> num
13
>>> 3 - num
-10
>>> num
-10
>>> 2 / num
-0.2
>>> num
-0.2
```
## Filter that returns list instead of generator when printed
```py
>>> from bad import filtered
>>> foo = [1, 2, 3, 5, 6, 7]
>>> filtered(lambda x: x % 3 == 0, foo)
[3, 6]
```
## Pipe and grep
```py
>>> from bad import grep
>>> LINES = """
... Whether you're new to programming or
... an experienced developer, it's easy
... to learn and use Python.
... Checkout jobs.python.org
... for Python jobs.
... """
>>> LINES | grep('Python')
['to learn and use python.', 'checkout jobs.python.org', 'for python jobs.']
>>> LINES | grep('Python') | grep('jobs')
['checkout jobs.python.org', 'for python jobs.']
```
## Undeletable
Need some memory leaking? Subclass the Undeletable to introduce "persistent" objects that won't go away!
```py
>>> from bad import Undeletable
>>> obj = Undeletable()
>>> del obj
You can't delete me!
>>> obj
```
Note that you can have many references to the same object. You can still delete all the references except the last one:
```py
>>> obj2 = obj
>>> del obj2
>>> obj2
Traceback (most recent call last):
File "", line 1, in
NameError: name 'obj2' is not defined
>>> obj
```
# Contribute
## Have a bad idea? Let me know!
Make a PR or open a ticket!