Skip to content

Instantly share code, notes, and snippets.

View laike9m's full-sized avatar
🧠
🐍

laike9m laike9m

🧠
🐍
View GitHub Profile
@laike9m
laike9m / django_cache_for_views.py
Last active August 29, 2015 14:04
Simple Djano cache system for function/class-based views with automatic key generation
#!/usr/bin/env python
# coding: utf-8
from asset.models import *
from common.models import *
from cost.models import *
from django.core.cache import cache
import inspect
from django.contrib.contenttypes.models import ContentType
from django.db.models.signals import pre_save, pre_delete
61.135.186.214 baidupcs.com
61.135.186.214 cdn.baidupcs.com
61.135.186.214 sslpcslimit.jomodns.com
# test.py
with freeze_time(datetime.datetime(2016, 2, 10, tzinfo=pytz.timezone('US/Pacific'))):
from mymodule import date_manager
# mymodule.py
class _DateManager(object):
def __init__(self):
self._today = datetime.datetime.now(pytz.timezone('US/Pacific'))
def xxxx(ph, sin_id):
with OracleConnect(xxxx) as db_oracle:
sql = u"xxxxx"
has_data, sql_data = db_oracle.get_one(sql)
if has_data:
return sql_data.get("task_id", ""), "rollback"
else:
return sin_id, "calculate"
@laike9m
laike9m / manually_maintain_stack.py
Created May 28, 2019 05:27
Record call arguments by manually recording VM stack.
import dis
import sys
def g(x, y):
# Code that analyzes outer frame to get passed in arguments.
outer_frame = sys._getframe(1)
instructions = list(dis.get_instructions(outer_frame.f_code))
call_start_offset = None
digraph "Cyberbrain Output" {
graph [forcelabels=true];
node [label="\N"];
subgraph "cluster_(0, 0, 0)" {
graph [color=lightgrey,
label="(0, 0, 0)",
overlap=scale,
style=filled
];
node [color=white,
http://wiki.c2.com/?RawStrings
Raw string 是个通用概念。即 escape 不生效的 string,既然不生效,也无法 escape 掉 ending sequence。
所有语言的 raw string 都面临一个问题,即如何处理 ending sequence
Python
https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals
staring sequence: “ or '
ending sequence: “ or '
Python 的做法是允许 ‘, “ 出现,但需要用 \ escape 掉它们(相当于在 Python raw string里有唯一生效的escape就是\”和\’),并且 \ 依然会出现
@laike9m
laike9m / calc.py
Created November 18, 2019 02:07
Basic Calculator III
class Solution:
"""
@param s: the expression string
@return: the answer
"""
def calculate(self, s):
i = 0
left_brac_indexes = []
while i < len(s):
@laike9m
laike9m / detect_computed_gotos.py
Created May 31, 2020 23:55
Checks whether the current Python interpreter has computed gotos enabled
# This file is for detecting whether the current interpreter has enabled computed gotos.
# See https://stackoverflow.com/q/61860463/2142577 for details.
import sys
def global_tracer(frame, event_type, arg):
assert event_type == "call"
print(f"computed gotos enabled: {frame.f_back.f_lasti == 40}") # Win: 38, Mac, Linux: 40
class Solution {
public:
bool isLetter(char c) {
return c >= 'a' && c <= 'z';
}
string minRemoveToMakeValid(string s) {
stack<pair<char, int>> sta;
string ans = "";
string buffer;