percache.ÀüÈdzÀÇ °á°ú¸¦ Áö¼ÓÀûÀ¸·Î ij½ÃÇÕ´Ï´Ù. | |
Áö±Ý ´Ù¿î·Îµå |
percache. ¼øÀ§ ¹× ¿ä¾à
±¤°í
- ƯÇã:
- MIT/X Consortium Lic...
- °¡°Ý:
- FREE
- °Ô½ÃÀÚ À̸§:
- Oben Sonne
- °Ô½ÃÀÚ À¥»çÀÌÆ®:
- http://bitbucket.org/obensonne/
percache. ű×
percache. ¼³¸í
È£ÃâÀÚÀÇ °á°ú¸¦ Áö¼ÓÀûÀ¸·Î ij½ÃÇÕ´Ï´Ù Percache´Â Decorator¸¦ »ç¿ëÇÏ¿© ÇÔ¼ö (¶Ç´Â ÀϹÝÀûÀ¸·Î È£Ãâ ÇÒÀÎ)ÀÇ °á°ú¸¦ Áö¼ÓÀûÀ¸·Î ij½ÃÇÏ´Â Python ¶óÀ̺귯¸®ÀÔ´Ï´Ù. Python Decorator ¶óÀ̺귯¸®¿¡¼ ¸Þ¸ð »çÀÌÆ® ¿¹Á¦¿Í ¾î¶»°Ô ÇØ´ç µÊÀ¸·Î½á °á°ú°¡ ij½Ã ÆÄÀÏ¿¡ ÀúÀåµÇ´Â ÀÌÁ¡ÀÌÀÖ´Â ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù. Percache´Â ÆÄÀ̽ã ÀÎÅÍÇÁ¸®ÅÍÀÇ ¿©·¯ È£Ãâ¿¡ °ÉÃÄ ¸Þ¸ðȸ¦ Á¦°øÇÕ´Ï´Ù. example : >>> °¡Á® ¿À±â percache >>> ij½Ã = percache.cache ( "/ tmp / my-cache") >>>>>> @ cache.check ... def LongTask (A, B) : ... Àμâ ( "±ä ÀÛ¾÷ ½ÇÇà") ... µ¹¾Æ°¡´Â + B ... >>> LongTask (1, 2) ±ä ÀÛ¾÷À» ½ÇÇà >>>>>> LongTask ( 1, 2) 3 >>> cache.close () # »õ ij½Ã µÈ °á°ú¸¦ µð¹ÙÀ̽º¿¡ ¾¹´Ï´Ù. µÎ ¹ø° È£Ãâ ÈÄ ´©¶ô µÈ Ãâ·Â¿¡¼ º¼ ¼ö ÀÖÀ¸¸ç LongTask°¡ ÇÑ ¹ø¸¸ È£ÃâµÇ¾ú½À´Ï´Ù. °á°ú°¡ ij½Ã¿¡¼ °Ë»öµÇ´Â ½Ã°£ÀÔ´Ï´Ù. ÀÌ ¸ðµâÀÇ ÇÙ½É ±â´ÉÀº ÀÌ°ÍÀÌ ÆÄÀ̽ã ÀÎÅÍÇÁ¸®ÅÍÀÇ ¿©·¯ È£Ãâ¿¡¼ ÀÛµ¿ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ij½Ã¿¡ ´ëÇÑ °á°ú¿¡ ´ëÇÑ ¿ä±¸ »çÇ×Àº ¼±ÅÃÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. °¢ ij½Ã ÆÄÀÏÀº ´Ù¸£°Ô ¸í¸í µÈ Callables.Caching ¼¼ºÎ Á¤º¸ (´ç½ÅÀÌÇؾßÇÕ´Ï´Ù). ¾Ë°í ÀÖÀ½) È£Ãâ °¡´ÉÇÑ À̸§°ú Àμö¸¦ ±â¹ÝÀ¸·ÎÇÏ´Â SHA1 Çؽø¦ ij½Ã ÆÄÀÏ¿¡ ÀúÀåÇÏ´Â Å°·Î »ç¿ëµË´Ï´Ù. Çؽà °è»êÀº Àμö¿Í Á÷Á¢ ÀÛµ¿ÇÏÁö ¾ÊÁö¸¸ rerpresentations¿Í ÇÔ²² ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù. repr ()À» Àû¿ëÇÏ¿© ¹Ýȯ µÈ ¹®ÀÚ¿ÀÔ´Ï´Ù. Àμö Ç¥ÇöÀº ±â´ÉÀÇ ¸ñÀûÀ¸·Î ÃæºÐÈ÷ °ªÀ» ±¸º°ÇÏÁö¸¸ ÆÄÀ̽ã ÀÎÅÍÇÁ¸®ÅÍÀÇ ¿©·¯ È£ÃâÀ» ÅëÇØ µ¿ÀÏÇÏ°Ô ±¸ºÐÇؾßÇÕ´Ï´Ù. ±âº»ÀûÀ¸·Î ³»Àå ÇÔ¼ö rep ()Àº Àμö Ç¥ÇöÀ» ¾ò´Â µ¥ »ç¿ëµË´Ï´Ù. ÀÌ°ÍÀº ±âº» Çü½Ä, ¸ñ·Ï, Æ©Çà ¹× À̵éÀÇ Á¶ÇÕ¿¡ ÀûÇÕÇÏÁö¸¸ ´Ù¸¥ À¯ÇüÀÇ Á¶ÇÕ¿¡ ¿Ïº®ÇÕ´Ï´Ù. >>> ´äº¯ (42) 42 # ÁÁÀº >>> ´äº¯ ( "A", "B", (1, 2L)] ""# good >> o = object () >>> ´äº¯ (O) ''# bad (ÁÖ¼Ò´Â µ¿ÀûÀÔ´Ï´Ù) >>> rv ({ "a": 1, b ": 2,"d ": 4,": 3} "{ 'a': 1, 'c': 3, 'b': 2, ' ': 4} "# À߸ø (ÁÖ¹® º¯°æ) >>> Ŭ·¡½º A (°´Ã¼) : ... DEF __init __ (self, a) : ... self.a = a ... >>> ´äº¯ (a ( 36) ''³ª»Û (AA°¡ °í·ÁµÇÁö ¾ÊÀ½) >>> ´äº¯ (A (35)) ''³ª»Û (AA °í·ÁÇÏÁö ¾ÊÀ½) ³ª»Û Ç¥ÇöÀº ÆÄÀ̽ã È£Ãâ (¸ðµç ³ª»Û ¿¹Á¦) ¶Ç´Â Çϳª¸¦ °¡·Î Áú·¯ µ¿ÀÏÇÏÁö ¾ÊÀº °ÍÀÔ´Ï´Ù. °ªÀ» ÃæºÐÈ÷ ±¸ºÐÇÏÁö ¾Ê½À´Ï´Ù (¸¶Áö¸· 2 °³ÀÇ À߸øµÈ ¿¹Á¦). ¾î·µç ÀÌ·¯ÇÑ À¯ÇüÀ» »ç¿ëÇÏ·Á¸é 1. ±×¿¡ µû¶ó À¯ÇüÀÇ __REPR __ () ¸Þ¼Òµå¸¦ ±¸ÇöÇϰųª 2. ij½Ã »ý¼ºÀÚÀÇ rev Å°¿öµå¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ Á¤ÀÇ Ç¥Çö ÇÔ¼ö¸¦ Á¦°øÇÕ´Ï´Ù. implement __REPR __ () ¸Þ¼µå´Â »çÀüÀ» Percache·Î µ¥·Á ¿À±â À§ÇØ »çÀüÀ» Àü´ÞÇÕ´Ï´Ù. EPR __ () ¹æ¹ý : >>> Ŭ·¡½º mydict (dict) : ... def __repr __ (self) : ... Ç׸ñ = ) ÀÚü) ... "{% s}"% ","join (Ç׸ñ) ... >>> rv (mydict ({ "a": 1, b ": 2,"d ": 4 , "c": 3})) "{ 'a': 1, 'b': 2, 'c': 3, 'd': 4}"ÁÁÀº (Ç×»ó °°Àº ¼ø¼) Custom repr () ÇÔ¼ö¸¦ Á¦°øÇÕ´Ï´Ù. ´ÙÀ½ ¿¹Á¦´Â »ç¿ëÀÚ Á¤ÀÇ Ç¥Çö ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÆÄÀÏ °´Ã¼ÀÇ ÀûÀýÇÑ Àμö Ç¥ÇöÀ» ¾ò´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù. >>> DEF MyRepr (arg) : ... iSInstance (arg, file) : ... # ÆÄÀÏ À̸§À¸·Î ¹®ÀÚ¿À» ¹ÝȯÇÕ´Ï´Ù. ¹× ¼öÁ¤ ½Ã°£ ... "% s : % s"% (arg.name, os.fstat (arg.fileno ()) ) ... else : ... return repl (arg) ... >>> ij½Ã = percache.cache ( "/ ÀϺΠ/ °æ·Î", rep = myRepr) ÇϿ콺 Å°ÇÎ * ij½Ã ÀνºÅϽºÀÇ close () ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ» ÀØÁö ¸¶½Ê½Ã¿À. ÀÌ ¸Þ¼Òµå°¡ È£Ãâ µÉ ¶§±îÁö RESUTLÀÌ µð½ºÅ©¿¡ ±â·ÏµÇÁö ¾Ê½À´Ï´Ù * ij½Ã µÈ ÇÔ¼öÀÇ µ¿ÀÛÀÌ º¯°æ µÉ ¶§¸¶´Ù ij½Ã ÆÄÀÏÀ» »èÁ¦ÇϽʽÿÀ! * ij½Ã°¡ Å©°í Ä¿ÁöÁö ¾Êµµ·ÏÇϱâ À§ÇØ Ä³½Ã ÀνºÅϽºÀÇ clear () ¸Þ¼µå¸¦ È£Ãâ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±âº»ÀûÀ¸·Î ij½Ã¿¡¼ ¸ðµç °á°ú¸¦ Áö ¿ó´Ï´Ù. Cached Reference°¡ ¸¶Áö¸·À¸·Î »ç¿ë µÈ ÀÌÈÄ·Î Åë°ú ÇÑ ÃÖ´ë ½Ã°£ ¼ö¸¦ ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµÇ´Â Å°¿öµå maxage. Maxage ÃÊ¿¡ »ç¿ëµÇÁö ¾ÊÀº °á°ú (±â·Ï ¶Ç´Â ¾×¼¼½º)´Â ij½Ã¿¡¼ Á¦°ÅµË´Ï´Ù. ¿ä±¸ »çÇ× : ¡¤ ÆÄÀ̽ã ÀÌ ¸±¸®½º¿¡¼´Â »õ·Î¿î ±â´É : ¡¤ ¸í·É ÁÙ ÀÎÅÍÆäÀ̽ºÀÇ À߸øµÈ »ç¿ë ¿¬·É Ãâ·ÂÀ» ¼öÁ¤ÇÕ´Ï´Ù. ¡¤ ÆäÀÏ ¸°Æ®·Î ¹ÝÂë ¸¸³ª½Ê½Ã¿À.
percache. °ü·Ã ¼ÒÇÁÆ®¿þ¾î