2009 Stuttgart Open – Singles

Juan Martín del Potro was the defending champion, but chose not to participate that year.

Singles
2009 Stuttgart Open
Champion Jérémy Chardy
Runner-up Victor Hănescu
Final score1–6, 6–3, 6–4

Jérémy Chardy won in the final 1–6, 6–3, 6–4 against Victor Hănescu.

Seeds

  1. Gilles Simon (Second Round)
  2. Nikolay Davydenko (Quarterfinals)
  3. Tomáš Berdych (First Round)
  4. Victor Hănescu (Final)
  5. Philipp Kohlschreiber (Second Round)
  6. Albert Montañés (withdrew)
  7. Fabrice Santoro (First Round)
  8. José Acasuso (First Round)

Draw

Key

Finals

Semifinals Final
          
  Jérémy Chardy 6 7  
  Nicolas Kiefer 3 5  
  Jérémy Chardy 1 6 6
4 Victor Hănescu 6 3 4
4 Victor Hănescu 6 64 6
  Fabio Fognini 3 7 2

Top half

First Round Second Round Quarterfinals Semifinals
1 G Simon 6 6  
  P Petzschner 3 4   1 G Simon 3 2  
  M Zverev 6 6     M Zverev 6 6  
  G García-López 2 4     M Zverev 64 1  
  A Golubev 6 3 0   J Chardy 7 6  
  M Vassallo Argüello 3 6 6   M Vassallo Argüello 6 3 1
  J Chardy 6 7     J Chardy 2 6 6
8 J Acasuso 2 64     J Chardy 6 7  
3 T Berdych 3 3     N Kiefer 3 5  
  N Kiefer 6 6     N Kiefer 6 6  
  A Beck 64 65   WC S Greul 3 4  
WC S Greul 7 7     N Kiefer 6 6  
Q Ł Kubot 6 6   Q Ł Kubot 2 1  
Q P Andújar 2 4   Q Ł Kubot 6 6  
  D Junqueira 3 2   5 P Kohlschreiber 2 4  
5 P Kohlschreiber 6 6  

Bottom half

First Round Second Round Quarterfinals Semifinals
LL A Sidorenko 7 1 6
Q D Muñoz-De La Nava 63 6 2 LL A Sidorenko 2 6 6
  J Tipsarević 4 4     Ó Hernández 6 4 3
  Ó Hernández 6 6   LL A Sidorenko 62 4  
  I Minář 6 62 4 4 V Hănescu 7 6  
  R Schüttler 2 7 6   R Schüttler 2 1  
Q D Meffert 4 66   4 V Hănescu 6 6  
4 V Hănescu 6 7   4 V Hănescu 6 64 6
7 F Santoro 7 63 1   F Fognini 3 7 2
  F Fognini 5 7 6   F Fognini 6 4  
  M Youzhny 64 64     P-H Mathieu 4 1 r
  P-H Mathieu 7 7     F Fognini 6 3 7
WC M Berrer 0 7 7 2 N Davydenko 1 6 5
WC S Koubek 6 63 64 WC M Berrer 3 3  
  I Navarro 6 5 3 2 N Davydenko 6 6  
2 N Davydenko 4 7 6
gollark: Yes; it's *very hard* to go around editing the FS API such that other stuff isn't affected.
gollark: ```pythonfrom requests_futures.sessions import FuturesSessionimport concurrent.futures as futuresimport randomtry: import cPickle as pickleexcept ImportError: import pickletry: words_to_synonyms = pickle.load(open(".wtscache")) synonyms_to_words = pickle.load(open(".stwcache"))except: words_to_synonyms = {} synonyms_to_words = {}def add_to_key(d, k, v): d[k] = d.get(k, set()).union(set(v))def add_synonyms(syns, word): for syn in syns: add_to_key(synonyms_to_words, syn, [word]) add_to_key(words_to_synonyms, word, syns)def concat(list_of_lists): return sum(list_of_lists, [])def add_words(words): s = FuturesSession(max_workers=100) future_to_word = {s.get("https://api.datamuse.com/words", params={"ml": word}): word for word in words} future_to_word.update({s.get("https://api.datamuse.com/words", params={"ml": word, "v": "enwiki"}): word for word in words}) for future in futures.as_completed(future_to_word): word = future_to_word[future] try: data = future.result().json() except Exception as exc: print(f"{exc} fetching {word}") else: add_synonyms([w["word"] for w in data], word)def getattr_hook(obj, key): results = list(synonyms_to_words.get(key, set()).union(words_to_synonyms.get(key, set()))) if len(results) > 0: return obj.__getattribute__(random.choice(results)) else: raise AttributeError(f"Attribute {key} not found.")def wrap(obj): add_words(dir(obj)) obj.__getattr__ = lambda key: getattr_hook(obj, key)wrap(__builtins__)raise __builtins__.quibble()```
gollark: table.deepcopy, table.shallowcopy, table.slice, table.filter, table.map
gollark: Same with many other utility thingies.
gollark: Not really. They could have table.copy but they don't.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.