Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3495 posts.

GUI » Сделать окно внешнего приложения активным (Windows) » Апрель 14, 2013 04:11:45

Есть такой код:
win32gui.SetForegroundWindow(program[0])
win32gui.SetActiveWindow(program[0])
Мне необходимо переключиться на определенное окно внешнего приложения. SetForegroundWindow выводит нужное окно на первый план (это работает), а SetActiveWindow, по идее, должно делать окно активным, но почему-то не работает. Почему?

Полный код:
def make_window_active(my_title):
        if sys_type=='win':
                toplist = []
                winlist = []
                def enum_callback(hwnd, results):
                        winlist.append((hwnd, win32gui.GetWindowText(hwnd)))
                win32gui.EnumWindows(enum_callback, toplist)
                program = [(hwnd, title) for hwnd, title in winlist if my_title in title.lower()]
                # just grab the first window that matches
                if len(program)>=1:
                        program = program[0]
                        # use the window handle to set focus
                        win32gui.SetForegroundWindow(program[0])
                        win32gui.SetActiveWindow(program[0])
Код предназначен для вычисления окна с определенным текстом в заголовке и для того, чтобы сделать это окно активным. Работает все, кроме SetActiveWindow.

Python для новичков » PySphere - продолжить получение данных после обрыва сети.  » Апрель 13, 2013 10:11:58

Добрый день.

Имеется код, для работы с виртуальными машинами VMware vSphere.
Задача следующая:
Из VMware vSphere получить список ВМ. В цикле для каждой машины получить ее свойство(ОС, имя, сеть и т.д.). Полученные свойства будут записываться в БД.
Проблема:
Связь между сервером vSphere и клиентом, где будет запускаться скрипт, часто рвется. Подключение и цикл по извлечению ВМ приходиться начинать заново, что довольно проблематично, так как ВМ очень много и этот процесс может занимать продолжительное время, и есть вероятность что за это время может случиться очередной обрыв связи.

Как можно средствами python сделать что бы после обрыва и подключения к серверу продолжить с того момента где был обрыв?

# -*- coding: latin-1 -*-
import os
import sys
import time
import logging
import logging.config
from pysphere import VIServer
from pysphere import VIException
from collections import Iterable as ITER
#-- Logging --#
logging.config.fileConfig('log.conf')
logging.getLogger('pysphere').setLevel('DEBUG')
#-- VMWare SPHERE --#
g_HOST = 'ip_address'
g_LOGIN = 'user'
g_PW = 'password'
#-- Global variables for count --#
g_SLEEP_INTERVAL = 10
g_COUNTDOWN = 5
def timer(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        foo = func(*args, **kwargs)
        print '\n', '--' * 40
        print '\n--Run-time functions: %d sec.' % (time.time() - start_time)
        return foo
    return wrapper
def connection(sql_query):
    pass
def set_query(property, network, status):
    '''def set_query:
        Query for DB
    '''
    query = "execute procedure CHECKS_MAKETS ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}');".format(
                                        property.get('real_name'),
                                        property.get('alias_name'),
                                        property.get('OS'),
                                        property.get('parent_folder'),
                                        ';'.join(network.get('IP', 'None')),
                                        ';'.join(network.get('VLAN', 'None')),
                                        status.get('STATUS')
                                        )
    connection(query)
class GetInfoVM(object):
    '''class GetInfoVM:
        Get VM list from vSphere
        then list start in cycle
            then each item get property of VM:
            Property:
                Property['alias_name']
                Property['real_name']
                Property['OS']
                Property['parent_folder']
            Network:
                Network['IP']
                Network['VLAN']
            Status:
                Status['STATUS']
                    convert for SQL Base:
                        PowerOff is 0
                        PowerOn is 1
        and run func: set_query(Property, Network, Status)
        USAGE:
            >>> get_prop = GetInfoVM()
            >>> get_prop.get_VMList()
            >>> get_prop.server.disconnect()
    '''
    def __init__(self):
        self.server = VIServer()
        self.server.connect(g_HOST, g_LOGIN, g_PW)
        self.vm_list = self.server.get_registered_vms()
    def get_VMList(self):
        '''def get_VMList: 
                Get VM list for TVCenter  '''
        for vm_path in self.vm_list:
            vm = self.server.get_vm_by_path(vm_path)
            Property = self.__get_property(vm)
            Network = self.__get_network(vm)
            Status = self.__get_status(vm)
            ###--- Launch function create query for DB ---###
            set_query(Property, Network, Status)
        logging.info('All data were processed')
    def __get_property(self, vm):
        '''def __get_property:
                Get Property of VM '''
        Property = {}
        Property['alias_name'] = vm.__get_property('name', from_cache=False)
        Property['real_name'] = os.path.basename(vm.__get_property('path'))
        Property['OS'] = vm.__get_property('guest_full_name', from_cache=False)
        Property['parent_folder'] = vm.properties.parent.name.decode('utf-8').encode('cp1251')
        return Property
    def __get_network(self,vm):
        '''def __get_network:
                Get network properties of VM:
                    get IP address
                and
                    get Vlan id'''
        Network = {}
        net = vm.__get_property('net', from_cache=False)
        if isinstance(net, ITER):
            extract = lambda x: x[0] if x else 'None'
            IP_addr = [extract(ip.get('ip_addresses')) for ip in net]
            Vlan_name = [str(vln.get('network', 'None')) for vln in net]
        else:
            IP_addr =  ['None']
            Vlan_name =  ['None']
        Network['IP'] = IP_addr
        Network['VLAN'] = Vlan_name
        return Network
    def __get_status(self, vm):
        '''def __get_status:
                Get status of VM:
                    is POWERED OFF VM
                or 
                    is POWERED ON VM'''
        Status = {}
        status_vm = vm.__get_status()
        if status_vm == 'POWERED OFF':
            Status['STATUS'] = 0 # for sql trigger
        elif status_vm == 'POWERED ON':
            Status['STATUS'] = 1 # for sql trigger
        return Status
@timer
def main(count):
    count += 1
    try:
        get_prop = GetInfoVM()
    except VIException as ex:
        logging.error('%s' % ex)
        logging.info('Sleep %s seconds' % g_SLEEP_INTERVAL)
        time.sleep(g_SLEEP_INTERVAL)
        logging.info('Try again, attempt number - %s' % count)
        if count == g_COUNTDOWN:
            logging.error('Exceed the number of requests. Program exits with code [1]')
            sys.exit(1)
        main(count)
    else:
        logging.info('Connect to vSphere is successfully')
        try:
            get_prop.get_VMList()
        except (VIException, Exception) as ex:
            logging.error('%s' % ex)
            logging.info('Sleep %s seconds' % g_SLEEP_INTERVAL)
            time.sleep(g_SLEEP_INTERVAL)
            logging.info('Try again, attempt number - %s' % count)
            if count == g_COUNTDOWN:
                logging.error('Exceed the number of requests. Program exits with code [1]')
                sys.exit(1)
            main(count)
        get_prop.server.disconnect()
        logging.info('Disconnect from vSphere')
if __name__ == '__main__':
    main(0)

Django » django-hosts, встала проблема с относительными урлами » Апрель 12, 2013 11:24:23

Приложение срабатывает как надо, но ссылки в html относительные (/products/, /categories/, /about/ и т.д.) и при переходе на них идёт запрос уже на поддомен (sub.example.ru/products/).
Вкратце: Каталог товаров. нужно чтобы на поддоменах НАЗВАНИЕ_БРЕНДА.site.ru вывелись товары этого бренда.
Пока требуется чтобы работал только адрес “/”.

hosts.py
host_patterns = patterns('',
host(r'(www)', settings.ROOT_URLCONF, name="www"),
host(r'(?P<brand>\w+)', 'catalog.brands_urls', name='brands', callback=host_site),
)
brands_urls.py
from .views import brand_subdomain
urlpatterns = patterns('',
url(r'^$', brand_subdomain, name='view_brands'),
)

Перешёл я на НАЗВАНИЕ_БРЕНДА.site.ru
И надо чтобы переход по другим ссылкам был без поддомена.

Django » Django admin category => podact » Апрель 11, 2013 10:29:05

Здравствуйте, подскажете, можно в админке при редактировании категории сделать так, чтобы отображался список под категорий которые относятся к данное (редактируемой категории) ?
Есть в админке две модели Сategory, Podcat. Podcat наследует category_id.

Django » Требуется разработчик django » Апрель 10, 2013 12:38:54

Требуется разработчик для создания сайта с большим опытом разработки в среде django. Работа удалённая, оплата достойная. Контакты для связи +7905-530-5678 , skype: sypper-pit, mailto:uuhn.info@gmail.com

Python для новичков » Замена на libpython2.5 для проги, работающей с libpython2.3 » Апрель 10, 2013 10:53:02

Имеется программа слинкованная с расшаренной библиотекой libpython2.3.4, подключаю вместо нее libpython2.5, но при запуске программы выдается


Symbol `PyBool_Type' has different size in shared object, consider re-linking
Symbol `PyFloat_Type' has different size in shared object, consider re-linking

Segmentation fault

Вот тема, в которой рассказывается как это сделать http://blog.garethj.com/2008/05/07/replacing-python-on-a-battlefield-2-server/

Я собрал python 2.5
./configure --enable-unicode --enable-shared --with-threads --with-pymalloc && make && sudo make install
но с ним не сработало,
решил попробовать с 2.4
программа запустилась

Можно ли собрать python c такими же размерами типов переменных, что и в 2.4?
Или подскажите как решить данную проблему.

Речь идет о battlefield 2 сервере.

Django » Нужен срочно опытный Python Developer для участия в проекте!!! » Апрель 9, 2013 11:58:58

Добрый день, уважаемые разработчики.
Мне срочно требуется Ваша квалифицированная помощь.

Нужен Python Developer с опытом работы высоконагруженных систем в Киеве.
Есть предложение для работы.
Очень интересный проект, старт ап.
Работа на постоянной основе, очень привлекательные материальные условия и остальные плюшки.

Если есть кто на примете, пишите на мейл leon740gk@gmail.com
или скайп: gregoreisenhorn047

Буду рад пообщаться со всеми желающими.

С уважением,
Александр.

Python проекты » async_gui - упрощение работы с потоками (threads) и процессами в GUI приложениях » Апрель 6, 2013 18:00:24

async_gui - это библитека, которая помогает упростить использование потоков в GUI приложениях.

Исходный код и issue-трекер на github
Пакет на PyPI
Документация (en)

Идея взята из презентации Using futures for async GUI programming in Python 3.3

Пример обработчика нажатия кнопки
@engine.async
def on_button_click(self, *args):
    self.status_label.setText("Downloading image...")
    # Run single task in separate thread
    image_data = yield Task(self.load_url,
                            "http://www.google.com/images/srpr/logo4w.png")
    pixmap = QtGui.QPixmap.fromImage(QtGui.QImage.fromData(image_data))
    self.image_label.setPixmap(pixmap)
    self.status_label.setText("Downloading pages...")
    urls = ['http://www.google.com',
            'http://www.yandex.ru',
            'http://www.python.org']
    # Run multiple task simultaneously in thread pool
    pages = yield [Task(self.load_url, url) for url in urls]
    self.status_label.setText("Done")
    avg_size = sum(map(len, pages)) / len(pages)
    self.result_label.setText("Average page size: %s" % avg_size)
Полный пример
Так как загрузка данных из сети может занять некоторое время и сделать интерфейс неотзывчивым, эти операции выполнены в отдельных потоках.
При этом код выглядит последовательно, а обновления интерфейса происходят в потоке GUI.

Возможности и особенности:
- Поддержка Python 2.7+ (требуется futures), и Python 3+
- Поддержка PyQt4/PySide, Tk, Wx, Gtk. Просто добавить другие тулкиты
- Можно запускать задачи в Thread'ах, Process'ах, Greenlet'ах (требуется gevent)
- Запуск нескольких задач одновременно
- Обработка ошибок, как в коде без потокв
- Покрытие тестами

В отличие от библиотеки из презентации, async_gui нацелена на совместимость с Python 2.7-3+, поэтому не использует yield from и tulip.

Данный релиз является предварительным, возможны изменения API.

Python для новичков » exit code 139 » Апрель 5, 2013 13:46:12

Пишу а*(нахождение мин. пути по графу) на питоне, pyCharm, использую FastRBTree для хранения открытых и закрытых точек. Изменяю карту: размерность и преграды, то программа работает и путь находится, то все останавливается и в консоли пишется Process finished with exit code 139. Без указания ошибок и трейсбеков. Я понятия не имею, что это может быть, ломаю голову уже третий день, очень надеюсь на ваш опыт.

Python для новичков » Мультикаст IPTV вещание » Апрель 5, 2013 06:30:19

Есть задача записи из канала вещания (5-10 секунд) в файл. Подскажите, в какую библиотеку можно посмотреть для этого? Не смог найти подходящую.

Флейм » нужен Phyton developer (midl,Senior). .Харьков » Апрель 4, 2013 14:51:25




Крупная западная софтверная компания с результативной экспертизой в создании глобальных решений приглашает квалифицированного Python программиста (уровня Сениор ) для участия в крупных проектах компании
Чем интересен проект?
-это задачи на острие технологий,вы прокачаете технологическую экспертизу
-это целевые облачные проекты,нет нецелевых задач

Чем будете заниматься?
Участвовать в разработке и поддержке клиентских облачных сервисов,часто компании из мировой элиты-списка Fortune 100.
+тестирование,разработка АРІшек

Простые квалификационные требования
-опыт в разработке ПО от 3х лет
-знание Python
- знание сетевых протоколов TCP/IP
-Unix/Linux

Английский, если не знаете- будет великолепная возможность подучить

Компания предлагает хорошие западные условия работы:
-высококонкурентная оплата труда
-комфортный офис возле метро+гибкий график(вам понравится))
-помощь в повышении профессионального уровня(тренинги,сертификация)
-оплачиваемые отпуска(28 календарных) и больничные
-у вас будет доступ к глобальной технической экспертизе компании, учись- не хочу
-график работы гибкий,лояльный
В соцпакете есть даже медстраховка

Для тех, кто хочет повидать мир есть хорошая возможность- сотрудники часто бывают в зарубежных командировках

Отличная позиция,всех заинтересовавшихся просим присылать развернутые резюме на мейл info@eone.com.ua
Скайп Denysjet
t 0666742866
Удачи в работе!

Python для экспертов » Google Analytics API на Питоне » Апрель 3, 2013 18:43:03

Всем Здрасте! Нуждаюсь в вашей помощи Гуру Девелоперы!
С пргораммированием я знаком не очень. Вот стоит на работе задачка по извлечению данных из Гугл Аналитикс, сам я аналитик и мне этобы очень помогло для работы, у в отделе программеров тикетов до следующего года , поскольку аккаунтов там более 250 то извечение в ручную как вы понимаете не подходит стал я разбираться менюалы листать, примеры учебники справочники. Вообщем на основе примеров и другой полезной инфы в нете склепал я приложение на питоне которые вытаскивает данные что мне нужно по заданому ID.
Начало было положено, дальше чтобы добить все не обходимые ID я запустил циклы в которых у меня появилась проблемка ниже добавлю код и обьясню чтобы я хотел от Вас узнать.
Это моя мэин в ней позадавал сервисы и что где будет вызываться! Простити меня пожалуйста за кривую нюбскую терминологию!
def main(argv):
    # Step 1. Get an analytics service object.
    service = sample_utils.initialize_service()
    try:
        # Step 2. Get the user's first profile ID.
        profile_id = get_profile_id(service)
        if profile_id:
            # Step 3. Query the Core Reporting API.
            results = get_results(service, profile_id)
            # Step 4. Output the results.
            print_results(results)
    except TypeError, error:
        # Handle errors in constructing a query.
        print ('There was an error in constructing your query : %s' % error)
    except HttpError, error:
        # Handle API errors.
        print ('Arg, there was an API error : %s : %s' %
                     (error.resp.status, error._get_reason()))
    except AccessTokenRefreshError:
        # Handle Auth errors.
        print ('The credentials have been revoked or expired, please re-run '
                     'the application to re-authorize')

Дальше я определяю функцию которая с помощью циклов добудет мне ID пользуясь которым я вытаскиваю параметры с гугла
def get_profile_id(service):
        accounts = service.management().accounts().list().execute()
    account_list = accounts.get('items')
    account_list = account_list[0:10]
    for account in account_list:
        time.sleep(0.025)
        id = account.get('id')
        webproperties = service.management().webproperties().list(accountId=id).execute()
        webproperties = webproperties.get('items')
        for webproperty in webproperties:
            id_web = webproperty.get('id')
            profiles = service.management().profiles().list(accountId=id,webPropertyId=id_web).execute()
            profiles = profiles.get('items')
            for profile in profiles:
               profile_id = profile.get('id')
               return profile_id
    return None
в выше указаную функцию мне нужно вставить функцию ниже которая вытягивает необходимые данные, с переменной которуб мы получили в верхней функции profile_id причем вставить ее так же в цикле чтобы она провертелась для всех добытых в функции get_profile_id id-шников
def get_results(service,profile_id):
  
  return service.data().ga().get(
      ids='ga:' + profile_id,
      start_date='2013-03-23',
      end_date='2013-03-25',
      metrics='ga:visits',#ga:goalCompletionsAll,ga:pageviews',#ga:pageviewsPerVisit',#ga:timeOnSite,
      dimensions='ga:source',#'ga:customVarValue1', #ga:adContent', # ga:campaign', 
      sort='-ga:visits',
      #filters='ga:medium==organic',
      #start_index='1',
      max_results='25')	
Вот собственно основной вопрос как мне функцию get_results вставить в функцию get_profile_id чтоб они прошли одинаковым циклом и get_results получала с get_profile_id айдишники которые навертелись циклом. Толи ее нада внутри друг друга обьявлять толи есть еще какие приемы.
Если можно пожалуйста с теоритическими примеры как описать или как обьявить функцию внутри функции и желательно цикла поскольку беда у меня синтаксисом да вообще с познаниями капец какая, не судите строго если что, а подскажите что да как если сможете.
Спасибо большое за внимание.

Python для новичков » Google Analytics API на Питоне » Апрель 3, 2013 15:37:42

Всем Здрасте! Нуждаюсь в вашей помощи Гуру Девелоперы!
С пргораммированием я знаком почти никак. Вот стоит на работе задачка по извлечению данных из Гугл Аналитикс, сам я аналитик и мне этобы очень помогло для работы, у в отделе программеров тикетов до следующего года , поскольку аккаунтов там более 250 то извечение в ручную как вы понимаете не подходит стал я разбираться менюалы листать, примеры учебники справочники. Вообщем на основе примеров и другой полезной инфы в нете склепал я приложение на питоне которые вытаскивает данные что мне нужно по заданому ID.
Начало было положено, дальше чтобы добить все не обходимые ID я запустил циклы в которых у меня появилась проблемка ниже добавлю код и обьясню чтобы я хотел от Вас узнать.
Это моя мэин в ней позадавал сервисы и что где будет вызываться! Простити меня пожалуйста за кривую нюбскую терминологию!
def main(argv):
    # Step 1. Get an analytics service object.
    service = sample_utils.initialize_service()
    try:
        # Step 2. Get the user's first profile ID.
        profile_id = get_profile_id(service)
        if profile_id:
            # Step 3. Query the Core Reporting API.
            results = get_results(service, profile_id)
            # Step 4. Output the results.
            print_results(results)
    except TypeError, error:
        # Handle errors in constructing a query.
        print ('There was an error in constructing your query : %s' % error)
    except HttpError, error:
        # Handle API errors.
        print ('Arg, there was an API error : %s : %s' %
                     (error.resp.status, error._get_reason()))
    except AccessTokenRefreshError:
        # Handle Auth errors.
        print ('The credentials have been revoked or expired, please re-run '
                     'the application to re-authorize')
Дальше я определяю функцию которая с помощью циклов добудет мне ID пользуясь которым я вытаскиваю параметры с гугла
def get_profile_id(service):
        accounts = service.management().accounts().list().execute()
    account_list = accounts.get('items')
    account_list = account_list[0:10]
    for account in account_list:
        time.sleep(0.025)
        id = account.get('id')
        webproperties = service.management().webproperties().list(accountId=id).execute()
        webproperties = webproperties.get('items')
        for webproperty in webproperties:
            id_web = webproperty.get('id')
            profiles = service.management().profiles().list(accountId=id,webPropertyId=id_web).execute()
            profiles = profiles.get('items')
            for profile in profiles:
               profile_id = profile.get('id')
               return profile_id
    return None
в выше указаную функцию мне нужно вставить функцию ниже которая вытягивает необходимые данные, с переменной которуб мы получили в верхней функции profile_id причем вставить ее так же в цикле чтобы она провертелась для всех добытых в функции get_profile_id id-шников
def get_results(service,profile_id):
  
  return service.data().ga().get(
      ids='ga:' + profile_id,
      start_date='2013-03-23',
      end_date='2013-03-25',
      metrics='ga:visits',#ga:goalCompletionsAll,ga:pageviews',#ga:pageviewsPerVisit',#ga:timeOnSite,
      dimensions='ga:source',#'ga:customVarValue1', #ga:adContent', # ga:campaign', 
      sort='-ga:visits',
      #filters='ga:medium==organic',
      #start_index='1',
      max_results='25')	
Вот собственно основной вопрос как мне функцию get_results вставить в функцию get_profile_id чтоб они прошли одинаковым циклом и get_results получала с get_profile_id айдишники которые навертелись циклом. Толи ее нада внутри друг друга обьявлять толи есть еще какие приемы.
Если можно пожалуйста с теоритическими примеры как описать или как обьявить функцию внутри функции и желательно цикла поскольку беда у меня синтаксисом да вообще с познаниями капец какая, не судите строго если что, а подскажите что да как если сможете.
Спасибо большое за внимание.

Django » Правильная выборка из модели с prefetch_related. » Апрель 3, 2013 06:21:04

Привет.
Есть модели:
class A(models.Model):
    source = models.ForeignKey(B, related_name='source')
    target = models.ForeignKey(B, related_name='target')
    status = models.IntegerField(default=1)
class B(models.Model):
    name = models.CharField()
    compatibility = models.ManyToManyField(
        'self',
        symmetrical=False,
        through='A',
        blank=True,
        null=True
    )
class C(models.Model):
    myb = models.ForeignKey(B)
    name = models.CharField()

Делаю выборку из модели C:
    q = C.objects.filter(name='blahblah').\
        order_by('myb__name').\
        select_related('myb').\
        prefetch_related('myb__source', 'myb__target',  'myb__compatibility')

В шаблоне:
{% for q in myb.source.all %}
            {{ q.target.name|capfirst }} ({{ q.status }})<br/>
{% endfor %}
Меня терзают сомнения по поводу выборки в части с prefetch_related.
Может быть было достаточно:
#....
 prefetch_related('myb__source')
Раз связь идёт на саму модель.
Как правильно использовать prefetch_related (какие связи выбирать из модели), при связи модели саму на себя?

GUI » Подсветка текста между выбранными символами в виджете Text » Апрель 3, 2013 00:32:28

Добрый день формучанам.
Есть два виджета типа Text. В них много много текста в виде JSON обьектов. Допустим так:

{
    "name": "Test1"
    "values":
    {
        "value1": "1"
        "value2": "2"
    }
    "id": 55
}

Ну примерно такой вид и таких записей очень много с разными id. Подскажите пожалуйста код, который при клике на одной из таких записей изменит цвет фона текста между основными символами { … }, которые всегда находятся на первой позиции строк (во всем тексте только они находятся на первых позициях, это должно помочь).
Ещё лучше, если вы сможете добавить возможность одновременного поиска во втором виджете Text записи с таким же id и её выделении тоже. Если нет, над этим подумаю уже самостоятельно. Мне главное - первая часть задачи, так как с Tkinter навыков ещё очень мало.

Извиняюсь, что прошу много и ни за что, но вдруг кто-то уже делал подобное и имеет исходники которыми не против поделиться.

Заранее спасибо всем откликнувшимся.

Django » SimpleTemplateResponse vs HttpResponse » Март 31, 2013 14:11:03

В сторону SimpleTemplateResponse/TemplateResponse посмотрел, когда делал свой промежуточный слой(middleware).
При создании методов process_view/process_template_view задался таким вопросом: а может стоит заменить все ответы в представлениях на этот объект, вместо обычных HttpResponse/render_to_response/render??? Он шире и удобнее, и наследуется от HttpResponse.

Как думаете стоит? есть ли минусы? Кто-нибудь делал так?

Флейм » python/django developer, $1.5-2.5к » Март 30, 2013 15:47:47

Ищем программиста в Киевский офис или удаленно для работы над проектом уровня anywayanyday.

От нас:

- Возможность построить “процесс разработки своей мечты”
- Возможность 20% рабочего времени работать из дома
- Работа над новым продуктом
- $ 1.5-2.5к

требования:
- Опыт от 2 лет работы с python
- Знание и желание пользоваться методологиями: TDD, CI, AGILE
- Знание на достаточном уровне смежного стека технологий (unix, git, js, etc)
- инициативность

хорошо если:

- у вас хорошее техническое образование
- вы победитель олимпиад различного уровня
- умеете доводить дело до конца


Обязанности:
- Анализ, планирование, оценка задач
- разработка
- Контроль выполнения задач, кодревью
- Работа с несколькими джуниорами


О нас: разрабатываем в основном backend с использованием python/django. Проекты разноплановые. Фокусируемся в направлении backend for mobile apps.

Контакты:

info@7webpages.com
- Или приходите в гости в hackerspace.com.ua

Python для новичков » Zombie Engine » Март 29, 2013 09:15:33

Я пытаюсь пилить игру на Zombie engine. Он написан на python, я бы хотел поинтересоваться , как скомпилировать файлы в .exe чтобы это запускалось?

Python для новичков » SVN pre-commit hook » Март 27, 2013 12:39:14

Всем доброго времени суток!

Прошу оказать помощь в решении задачи!

Необходимо написать хук который бы запрещал коммитить в каталог без commit massage?

Инструментальные средства разработки » python и xcode » Март 27, 2013 11:29:44

всем привет, хочется узнать у профи стоит ли работать на python в xcode или это не самый удобный вариант? и если стоит то где посмтреть как настроить xcode под python? может есть туториал или видео уро на эту тему? я новичок, ищу подходящую среду, сейчас установлена editra, не очень удобно так как хочется чтобы можно было рисовать интерфейс и сразу запускать в программе не используя python launcher на прямую