if moon_phase == 42:
import sqlalchemy
ImportError
будет вылетать при определенной фазе луны.mylibrary_core
.mylibrary_django
, например).django
, например).mylibrary_django
, который автоматом подтягивает mylibrary_core
, о котором юзеру беспокоится не приходится.try:
while condition:
yield something
finally:
db.close()
except:
continue
наexcept StandardError:
continue
try:
self.cursor.execute('GRANT SELECT, INSERT ON TABLE log_fields TO manager;')
except psycopg2.Error as e:
print(e.pgerror)
print(e.diag.message_primary)
print(psycopg2.errorcodes.lookup(e.pgcode))
multiprocessing.Process
, поэтому осуществляется очень сложная эмуляция этого поведения. При этом функция target
выдирается из модуля, запускается в отдельном интерпретаторе, а все параметры сереализуются передаются и десереализуются перед вызовом target
, при этом инициализация модуля в новом интерпретаторе выполняется частично (инициализируется только глобальный контекс). Подробнее об этом, например, тут, есть еще одна очень хорошая статья где подробно рассмотрен этот механизм, но сейчас не найду ссылку.multiprocessing.Process()
) как можно раньше в коде.args
никаких сложных объектов с "поведением" (кроме объектов из самого multiprocessing, он сам знает как их правильно передавать), только голые данные (примитивы или объекты состоящие только из примитивов), которые сериализуются без сторонних эффектов.process.join()
, а просто читать результаты из output Pipe, они прочтутся только после того как попадут туда, что дальше будет происходить с процессом уже не важно (можно поставить return
после записи в Pipe в дочернем процессе).random.triangular(0., 1., 0.)
random.expovariate(1.)
(параметр lambd характеризует "наклон" графика, значение 1. выбрано произвольно)math.fabs(random.gauss(0., 1.))
(параметр sigma характеризует "наклон" графика, значение 1. выбрано произвольно)pip install numpy
), потребует установку еще одной интересной библиотеки (pip install numba
) с ее установкой могут быть связанны некоторые трудности на различных ОС (она зависит еще и от llvm), но, поверьте, оно того стоит, полученные цифры производительности должны вам понравиться.from numba import jit
import numpy
@jit
def inner_func(a_list, b_list):
sum = 0
j = 0
for y in range(0, 16):
for x in range(0, 16):
p = a_list[j] - b_list[j]
sum += p * p
j += 1
return sum
@jit
def outer_func(a_list, b_list):
sum = 0
for g in range(0, 100000000): # 100 000 000 == 10^8 !!!
sum += inner_func(a_list, b_list)
return sum
def main():
maxint = numpy.iinfo(numpy.intc).max
a_list = numpy.random.randint(maxint, size=256)
b_list = numpy.random.randint(maxint, size=256)
sum = outer_func(a_list, b_list)
print(sum)
if __name__ == '__main__':
main()
with open(path, 'w+') as f:
f.write(json.dumps(data, indent=2, ensure_ascii=False).encode('utf-8'))
1. Цена вопроса разработки.
2. Цена серверов.
3. Вероятность успешного завершения проекта.
4. Производительность.
5. Маштабируемость.
6. Отказоустойчивость.
Наглядный пример возможностей фильтра — получение оптимальных, непрерывно обновляемых оценок положения и скорости некоторого объекта по результатам временно́го ряда неточных измерений его местоположения.
Фильтр Калмана — это, наверное, самый популярный алгоритм фильтрации, используемый во многих областях науки и техники. Благодаря своей простоте и эффективности его можно встретить в GPS-приемниках, обработчиках показаний датчиков, при реализации систем управления и т.д.
import time
webbrowser.open_new(self.url)
time.sleep(2) # можете сами подобрать это значение
print("\n")
self.code = raw_input("Code: ")
format_c()
выбрасывал ошибку, если вы не писали никакой функции format_c, вместо того чтобы тихо вызывать где-то случайно заимпортированную os.low_level.dangerous.format_cfrom miscellaneous_imports_module import *
from collections import Counter
import re
from lxml.html import fromstring
from lxml.html.clean import Cleaner
import requests
def extract_text(node):
"""
Extract text without markup from node
"""
def extract_text_gen(node):
if node.text:
yield node.text.strip()
for child in node.iterchildren():
yield from extract_text_gen(child)
if child.tail:
yield child.tail.strip()
return ' '.join((s for s in extract_text_gen(node) if s))
def count_words(text):
return Counter((s for s in re.split(r'\s', text) if s))
html = requests.get('https://toster.ru/q/276749').content.decode('utf-8')
root = fromstring(html)
Cleaner()(root)
text = extract_text(root.body)
words_count = count_words(extract_text(root))
print('\n'.join(('"%s": %i' % (word, count) for word, count in words_count.most_common())))
extract_text
взята из одного моего проекта, слегка адаптирована и упрощена. Если да, то объясните, как это будет выглядеть и что для этого нужно.
from subprocess import check_output
def get_pid(name):
return map(int, check_output(["pidof", name]).split())
from urllib.request import urlopen # for Python 3
# from urllib2 import urlopen # for Python 2
from lxml.etree import XMLSyntaxError
from lxml.html import fromstring
from pandas import DataFrame, ExcelWriter
URL = 'http://www.tinko.ru/c-3.html?limit=100&no_cache=true&p=l'
ITEM_PATH = ' .info-block .product-name'
DESCR_PATH = '.breadcrumb .active'
HARET_PATH = '#techdata li'
def parse_courses():
f = urlopen(URL)
list_html = f.read().decode('utf-8')
list_doc = fromstring(list_html)
df = DataFrame(columns=('name', 'description', 'href'))
for elem in list_doc.cssselect(ITEM_PATH):
a = elem.cssselect('a')[0]
href = a.get('href')
name = a.text
details_html = urlopen(href).read().decode('utf-8')
try:
details_doc = fromstring(details_html)
except XMLSyntaxError:
continue
description = details_doc.cssselect(DESCR_PATH)[0].text_content()
haret_elems_list = [('name', name), ('description', description), ('href', href)]
for haret_elems in details_doc.cssselect(HARET_PATH):
spans = haret_elems.cssselect('span')
title = spans[0].text_content()
bower = spans[1].text_content()
haret_elems_list.append((title, bower))
df = df.append(dict(haret_elems_list), ignore_index=True)
writer = ExcelWriter('tinko_ru_price_list.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='tinko.ru price list', header=True, index=False)
writer.save()
def main():
parse_courses()
if __name__ == '__main__':
main()