arize-phoenix 5.2.2__py3-none-any.whl → 5.3.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. {arize_phoenix-5.2.2.dist-info → arize_phoenix-5.3.1.dist-info}/METADATA +3 -1
  2. {arize_phoenix-5.2.2.dist-info → arize_phoenix-5.3.1.dist-info}/RECORD +36 -29
  3. phoenix/core/model_schema_adapter.py +2 -2
  4. phoenix/db/migrations/versions/10460e46d750_datasets.py +1 -1
  5. phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +1 -1
  6. phoenix/db/migrations/versions/cf03bd6bae1d_init.py +1 -1
  7. phoenix/db/models.py +6 -6
  8. phoenix/server/api/input_types/ChatCompletionMessageInput.py +12 -0
  9. phoenix/server/api/input_types/InvocationParameters.py +20 -0
  10. phoenix/server/api/openapi/main.py +8 -13
  11. phoenix/server/api/queries.py +74 -0
  12. phoenix/server/api/schema.py +2 -0
  13. phoenix/server/api/subscriptions.py +449 -0
  14. phoenix/server/api/types/ChatCompletionMessageRole.py +11 -0
  15. phoenix/server/api/types/GenerativeModel.py +9 -0
  16. phoenix/server/api/types/GenerativeProvider.py +16 -0
  17. phoenix/server/app.py +36 -7
  18. phoenix/server/bearer_auth.py +12 -4
  19. phoenix/server/main.py +2 -2
  20. phoenix/server/static/.vite/manifest.json +35 -35
  21. phoenix/server/static/assets/{components-CPkaHQZs.js → components-CeBEsPFA.js} +153 -130
  22. phoenix/server/static/assets/{index-D4G-kYL9.js → index-CRTTIb3y.js} +2 -2
  23. phoenix/server/static/assets/{pages-B3HCyYqg.js → pages-vHjpYRiN.js} +361 -256
  24. phoenix/server/static/assets/vendor-D-NIjePD.js +872 -0
  25. phoenix/server/static/assets/{vendor-arizeai-D0FocbYu.js → vendor-arizeai-DoY5jUTO.js} +30 -28
  26. phoenix/server/static/assets/vendor-codemirror-CIhY_nEU.js +24 -0
  27. phoenix/server/static/assets/{vendor-recharts-JMOLUxWG.js → vendor-recharts-Dgcm35Jq.js} +1 -1
  28. phoenix/trace/fixtures.py +7 -9
  29. phoenix/utilities/client.py +2 -2
  30. phoenix/utilities/json.py +11 -0
  31. phoenix/utilities/template_formatters.py +70 -0
  32. phoenix/version.py +1 -1
  33. phoenix/server/static/assets/vendor-c0HJYYGN.js +0 -641
  34. phoenix/server/static/assets/vendor-codemirror-BbCMI-_D.js +0 -30
  35. {arize_phoenix-5.2.2.dist-info → arize_phoenix-5.3.1.dist-info}/WHEEL +0 -0
  36. {arize_phoenix-5.2.2.dist-info → arize_phoenix-5.3.1.dist-info}/entry_points.txt +0 -0
  37. {arize_phoenix-5.2.2.dist-info → arize_phoenix-5.3.1.dist-info}/licenses/IP_NOTICE +0 -0
  38. {arize_phoenix-5.2.2.dist-info → arize_phoenix-5.3.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
1
- import{c6 as Wr,c7 as gu,c8 as zt,c9 as ye,ca as Wt,r as B,cb as W,cc as z,cd as da,ce as X,R as A,cf as Dn,cg as bu,ch as Kc,ci as xu,cj as Ou,ck as Au,cl as wu,cm as Pu,cn as Su,co as Ti,cp as fi,cq as Fc,cr as Z,cs as at,ct as ki,cu as Ii,cv as rn,cw as _i,cx as Mn,cy as Re,cz as ju,cA as Eu,cB as $u,cC as Fe,cD as Tu,cE as ku,cF as Iu,cG as _u,cH as Cu,cI as Hr,cJ as Du,cK as Vc,cL as Mu,cM as Bu,cN as Nu,cO as Lu,cP as Ru,cQ as zu,cR as Wu,cS as Ku,cT as Fu,cU as Vu,cV as Xu,cW as Gu,cX as Me,cY as Hu,cZ as Uu,c_ as Yu,c$ as qu,d0 as an,d1 as Zu,d2 as Xc,d3 as Ju,d4 as Qu,d5 as es,d6 as ts}from"./vendor-c0HJYYGN.js";var se=function(e){return e===0?0:e>0?1:-1},tt=function(e){return Wr(e)&&e.indexOf("%")===e.length-1},M=function(e){return gu(e)&&!zt(e)},ne=function(e){return M(e)||Wr(e)},rs=0,Xe=function(e){var r=++rs;return"".concat(e||"").concat(r)},fe=function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!M(e)&&!Wr(e))return n;var i;if(tt(e)){var o=e.indexOf("%");i=r*parseFloat(e.slice(0,o))/100}else i=+e;return zt(i)&&(i=n),a&&i>r&&(i=r),i},Le=function(e){if(!e)return null;var r=Object.keys(e);return r&&r.length?e[r[0]]:null},ns=function(e){if(!Array.isArray(e))return!1;for(var r=e.length,n={},a=0;a<r;a++)if(!n[e[a]])n[e[a]]=!0;else return!0;return!1},te=function(e,r){return M(e)&&M(r)?function(n){return e+n*(r-e)}:function(){return r}};function on(t,e,r){return!t||!t.length?null:t.find(function(n){return n&&(typeof e=="function"?e(n):ye(n,e))===r})}var as=function(e){if(!e||!e.length)return null;for(var r=e.length,n=0,a=0,i=0,o=0,c=1/0,l=-1/0,u=0,s=0,f=0;f<r;f++)u=e[f].cx||0,s=e[f].cy||0,n+=u,a+=s,i+=u*s,o+=u*u,c=Math.min(c,u),l=Math.max(l,u);var d=r*o!==n*n?(r*i-n*a)/(r*o-n*n):0;return{xmin:c,xmax:l,a:d,b:(a-d*n)/r}};function Ot(t,e){for(var r in t)if({}.hasOwnProperty.call(t,r)&&(!{}.hasOwnProperty.call(e,r)||t[r]!==e[r]))return!1;for(var n in e)if({}.hasOwnProperty.call(e,n)&&!{}.hasOwnProperty.call(t,n))return!1;return!0}function pa(t){"@babel/helpers - typeof";return pa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pa(t)}var is=["viewBox","children"],os=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],Ci=["points","pathLength"],ta={svg:is,polygon:Ci,polyline:Ci},di=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"],cn=function(e,r){if(!e||typeof e=="function"||typeof e=="boolean")return null;var n=e;if(B.isValidElement(e)&&(n=e.props),!Wt(n))return null;var a={};return Object.keys(n).forEach(function(i){di.includes(i)&&(a[i]=r||function(o){return n[i](n,o)})}),a},cs=function(e,r,n){return function(a){return e(r,n,a),null}},Ve=function(e,r,n){if(!Wt(e)||pa(e)!=="object")return null;var a=null;return Object.keys(e).forEach(function(i){var o=e[i];di.includes(i)&&typeof o=="function"&&(a||(a={}),a[i]=cs(o,r,n))}),a},ls=["children"],us=["children"];function Di(t,e){if(t==null)return{};var r=ss(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function ss(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}function va(t){"@babel/helpers - typeof";return va=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},va(t)}var Mi={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},De=function(e){return typeof e=="string"?e:e?e.displayName||e.name||"Component":""},Bi=null,ra=null,pi=function t(e){if(e===Bi&&Array.isArray(ra))return ra;var r=[];return B.Children.forEach(e,function(n){z(n)||(da.isFragment(n)?r=r.concat(t(n.props.children)):r.push(n))}),ra=r,Bi=e,r};function de(t,e){var r=[],n=[];return Array.isArray(e)?n=e.map(function(a){return De(a)}):n=[De(e)],pi(t).forEach(function(a){var i=ye(a,"type.displayName")||ye(a,"type.name");n.indexOf(i)!==-1&&r.push(a)}),r}function he(t,e){var r=de(t,e);return r&&r[0]}var Ni=function(e){if(!e||!e.props)return!1;var r=e.props,n=r.width,a=r.height;return!(!M(n)||n<=0||!M(a)||a<=0)},fs=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],ds=function(e){return e&&e.type&&Wr(e.type)&&fs.indexOf(e.type)>=0},Gc=function(e){return e&&va(e)==="object"&&"cx"in e&&"cy"in e&&"r"in e},ps=function(e,r,n,a){var i,o=(i=ta==null?void 0:ta[a])!==null&&i!==void 0?i:[];return!W(e)&&(a&&o.includes(r)||os.includes(r))||n&&di.includes(r)},R=function(e,r,n){if(!e||typeof e=="function"||typeof e=="boolean")return null;var a=e;if(B.isValidElement(e)&&(a=e.props),!Wt(a))return null;var i={};return Object.keys(a).forEach(function(o){var c;ps((c=a)===null||c===void 0?void 0:c[o],o,r,n)&&(i[o]=a[o])}),i},ha=function t(e,r){if(e===r)return!0;var n=B.Children.count(e);if(n!==B.Children.count(r))return!1;if(n===0)return!0;if(n===1)return Li(Array.isArray(e)?e[0]:e,Array.isArray(r)?r[0]:r);for(var a=0;a<n;a++){var i=e[a],o=r[a];if(Array.isArray(i)||Array.isArray(o)){if(!t(i,o))return!1}else if(!Li(i,o))return!1}return!0},Li=function(e,r){if(z(e)&&z(r))return!0;if(!z(e)&&!z(r)){var n=e.props||{},a=n.children,i=Di(n,ls),o=r.props||{},c=o.children,l=Di(o,us);return a&&c?Ot(i,l)&&ha(a,c):!a&&!c?Ot(i,l):!1}return!1},Ri=function(e,r){var n=[],a={};return pi(e).forEach(function(i,o){if(ds(i))n.push(i);else if(i){var c=De(i.type),l=r[c]||{},u=l.handler,s=l.once;if(u&&(!s||!a[c])){var f=u(i,c,o);n.push(f),a[c]=!0}}}),n},vs=function(e){var r=e&&e.type;return r&&Mi[r]?Mi[r]:null},hs=function(e,r){return pi(r).indexOf(e)},ys=["children","width","height","viewBox","className","style","title","desc"];function ya(){return ya=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ya.apply(this,arguments)}function ms(t,e){if(t==null)return{};var r=gs(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function gs(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}function ma(t){var e=t.children,r=t.width,n=t.height,a=t.viewBox,i=t.className,o=t.style,c=t.title,l=t.desc,u=ms(t,ys),s=a||{width:r,height:n,x:0,y:0},f=X("recharts-surface",i);return A.createElement("svg",ya({},R(u,!0,"svg"),{className:f,width:r,height:n,style:o,viewBox:"".concat(s.x," ").concat(s.y," ").concat(s.width," ").concat(s.height)}),A.createElement("title",null,c),A.createElement("desc",null,l),e)}var bs=["children","className"];function ga(){return ga=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ga.apply(this,arguments)}function xs(t,e){if(t==null)return{};var r=Os(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Os(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}var H=A.forwardRef(function(t,e){var r=t.children,n=t.className,a=xs(t,bs),i=X("recharts-layer",n);return A.createElement("g",ga({className:i},R(a,!0),{ref:e}),r)}),je=function(e,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),i=2;i<n;i++)a[i-2]=arguments[i]};function sr(t){"@babel/helpers - typeof";return sr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sr(t)}var As=["type","size","sizeType"];function ba(){return ba=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ba.apply(this,arguments)}function zi(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function Wi(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?zi(Object(r),!0).forEach(function(n){ws(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):zi(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ws(t,e,r){return e=Ps(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ps(t){var e=Ss(t,"string");return sr(e)=="symbol"?e:String(e)}function Ss(t,e){if(sr(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(sr(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function js(t,e){if(t==null)return{};var r=Es(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Es(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}var Hc={symbolCircle:Kc,symbolCross:xu,symbolDiamond:Ou,symbolSquare:Au,symbolStar:wu,symbolTriangle:Pu,symbolWye:Su},$s=Math.PI/180,Ts=function(e){var r="symbol".concat(Dn(e));return Hc[r]||Kc},ks=function(e,r,n){if(r==="area")return e;switch(n){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var a=18*$s;return 1.25*e*e*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Is=function(e,r){Hc["symbol".concat(Dn(e))]=r},Bn=function(e){var r=e.type,n=r===void 0?"circle":r,a=e.size,i=a===void 0?64:a,o=e.sizeType,c=o===void 0?"area":o,l=js(e,As),u=Wi(Wi({},l),{},{type:n,size:i,sizeType:c}),s=function(){var g=Ts(n),O=bu().type(g).size(ks(i,c,n));return O()},f=u.className,d=u.cx,p=u.cy,m=R(u,!0);return d===+d&&p===+p&&i===+i?A.createElement("path",ba({},m,{className:X("recharts-symbols",f),transform:"translate(".concat(d,", ").concat(p,")"),d:s()})):null};Bn.registerSymbol=Is;function wt(t){"@babel/helpers - typeof";return wt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wt(t)}function xa(){return xa=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},xa.apply(this,arguments)}function Ki(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function _s(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Ki(Object(r),!0).forEach(function(n){fr(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Ki(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Cs(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Ds(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Yc(n.key),n)}}function Ms(t,e,r){return e&&Ds(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function Bs(t,e,r){return e=ln(e),Ns(t,Uc()?Reflect.construct(e,r||[],ln(t).constructor):e.apply(t,r))}function Ns(t,e){if(e&&(wt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ls(t)}function Ls(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Uc(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Uc=function(){return!!t})()}function ln(t){return ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},ln(t)}function Rs(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Oa(t,e)}function Oa(t,e){return Oa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,a){return n.__proto__=a,n},Oa(t,e)}function fr(t,e,r){return e=Yc(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Yc(t){var e=zs(t,"string");return wt(e)=="symbol"?e:String(e)}function zs(t,e){if(wt(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(wt(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var be=32,vi=function(t){Rs(e,t);function e(){return Cs(this,e),Bs(this,e,arguments)}return Ms(e,[{key:"renderIcon",value:function(n){var a=this.props.inactiveColor,i=be/2,o=be/6,c=be/3,l=n.inactive?a:n.color;if(n.type==="plainline")return A.createElement("line",{strokeWidth:4,fill:"none",stroke:l,strokeDasharray:n.payload.strokeDasharray,x1:0,y1:i,x2:be,y2:i,className:"recharts-legend-icon"});if(n.type==="line")return A.createElement("path",{strokeWidth:4,fill:"none",stroke:l,d:"M0,".concat(i,"h").concat(c,`
1
+ import{cs as Wr,ct as gu,cu as zt,cv as ye,cw as Wt,r as B,cx as W,cy as z,cz as da,cA as X,R as A,cB as Dn,cC as bu,cD as Kc,cE as xu,cF as Ou,cG as Au,cH as wu,cI as Pu,cJ as Su,cK as Ti,cL as fi,cM as Fc,cN as Z,cO as at,cP as ki,cQ as Ii,cR as rn,cS as _i,cT as Mn,cU as Re,cV as ju,cW as Eu,cX as $u,cY as Fe,cZ as Tu,c_ as ku,c$ as Iu,d0 as _u,d1 as Cu,d2 as Hr,d3 as Du,d4 as Vc,d5 as Mu,d6 as Bu,d7 as Nu,d8 as Lu,d9 as Ru,da as zu,db as Wu,dc as Ku,dd as Fu,de as Vu,df as Xu,dg as Gu,dh as Me,di as Hu,dj as Uu,dk as Yu,dl as qu,dm as an,dn as Zu,dp as Xc,dq as Ju,dr as Qu,ds as es,dt as ts}from"./vendor-D-NIjePD.js";var se=function(e){return e===0?0:e>0?1:-1},tt=function(e){return Wr(e)&&e.indexOf("%")===e.length-1},M=function(e){return gu(e)&&!zt(e)},ne=function(e){return M(e)||Wr(e)},rs=0,Xe=function(e){var r=++rs;return"".concat(e||"").concat(r)},fe=function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!M(e)&&!Wr(e))return n;var i;if(tt(e)){var o=e.indexOf("%");i=r*parseFloat(e.slice(0,o))/100}else i=+e;return zt(i)&&(i=n),a&&i>r&&(i=r),i},Le=function(e){if(!e)return null;var r=Object.keys(e);return r&&r.length?e[r[0]]:null},ns=function(e){if(!Array.isArray(e))return!1;for(var r=e.length,n={},a=0;a<r;a++)if(!n[e[a]])n[e[a]]=!0;else return!0;return!1},te=function(e,r){return M(e)&&M(r)?function(n){return e+n*(r-e)}:function(){return r}};function on(t,e,r){return!t||!t.length?null:t.find(function(n){return n&&(typeof e=="function"?e(n):ye(n,e))===r})}var as=function(e){if(!e||!e.length)return null;for(var r=e.length,n=0,a=0,i=0,o=0,c=1/0,l=-1/0,u=0,s=0,f=0;f<r;f++)u=e[f].cx||0,s=e[f].cy||0,n+=u,a+=s,i+=u*s,o+=u*u,c=Math.min(c,u),l=Math.max(l,u);var d=r*o!==n*n?(r*i-n*a)/(r*o-n*n):0;return{xmin:c,xmax:l,a:d,b:(a-d*n)/r}};function Ot(t,e){for(var r in t)if({}.hasOwnProperty.call(t,r)&&(!{}.hasOwnProperty.call(e,r)||t[r]!==e[r]))return!1;for(var n in e)if({}.hasOwnProperty.call(e,n)&&!{}.hasOwnProperty.call(t,n))return!1;return!0}function pa(t){"@babel/helpers - typeof";return pa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pa(t)}var is=["viewBox","children"],os=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],Ci=["points","pathLength"],ta={svg:is,polygon:Ci,polyline:Ci},di=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"],cn=function(e,r){if(!e||typeof e=="function"||typeof e=="boolean")return null;var n=e;if(B.isValidElement(e)&&(n=e.props),!Wt(n))return null;var a={};return Object.keys(n).forEach(function(i){di.includes(i)&&(a[i]=r||function(o){return n[i](n,o)})}),a},cs=function(e,r,n){return function(a){return e(r,n,a),null}},Ve=function(e,r,n){if(!Wt(e)||pa(e)!=="object")return null;var a=null;return Object.keys(e).forEach(function(i){var o=e[i];di.includes(i)&&typeof o=="function"&&(a||(a={}),a[i]=cs(o,r,n))}),a},ls=["children"],us=["children"];function Di(t,e){if(t==null)return{};var r=ss(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function ss(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}function va(t){"@babel/helpers - typeof";return va=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},va(t)}var Mi={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},De=function(e){return typeof e=="string"?e:e?e.displayName||e.name||"Component":""},Bi=null,ra=null,pi=function t(e){if(e===Bi&&Array.isArray(ra))return ra;var r=[];return B.Children.forEach(e,function(n){z(n)||(da.isFragment(n)?r=r.concat(t(n.props.children)):r.push(n))}),ra=r,Bi=e,r};function de(t,e){var r=[],n=[];return Array.isArray(e)?n=e.map(function(a){return De(a)}):n=[De(e)],pi(t).forEach(function(a){var i=ye(a,"type.displayName")||ye(a,"type.name");n.indexOf(i)!==-1&&r.push(a)}),r}function he(t,e){var r=de(t,e);return r&&r[0]}var Ni=function(e){if(!e||!e.props)return!1;var r=e.props,n=r.width,a=r.height;return!(!M(n)||n<=0||!M(a)||a<=0)},fs=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],ds=function(e){return e&&e.type&&Wr(e.type)&&fs.indexOf(e.type)>=0},Gc=function(e){return e&&va(e)==="object"&&"cx"in e&&"cy"in e&&"r"in e},ps=function(e,r,n,a){var i,o=(i=ta==null?void 0:ta[a])!==null&&i!==void 0?i:[];return!W(e)&&(a&&o.includes(r)||os.includes(r))||n&&di.includes(r)},R=function(e,r,n){if(!e||typeof e=="function"||typeof e=="boolean")return null;var a=e;if(B.isValidElement(e)&&(a=e.props),!Wt(a))return null;var i={};return Object.keys(a).forEach(function(o){var c;ps((c=a)===null||c===void 0?void 0:c[o],o,r,n)&&(i[o]=a[o])}),i},ha=function t(e,r){if(e===r)return!0;var n=B.Children.count(e);if(n!==B.Children.count(r))return!1;if(n===0)return!0;if(n===1)return Li(Array.isArray(e)?e[0]:e,Array.isArray(r)?r[0]:r);for(var a=0;a<n;a++){var i=e[a],o=r[a];if(Array.isArray(i)||Array.isArray(o)){if(!t(i,o))return!1}else if(!Li(i,o))return!1}return!0},Li=function(e,r){if(z(e)&&z(r))return!0;if(!z(e)&&!z(r)){var n=e.props||{},a=n.children,i=Di(n,ls),o=r.props||{},c=o.children,l=Di(o,us);return a&&c?Ot(i,l)&&ha(a,c):!a&&!c?Ot(i,l):!1}return!1},Ri=function(e,r){var n=[],a={};return pi(e).forEach(function(i,o){if(ds(i))n.push(i);else if(i){var c=De(i.type),l=r[c]||{},u=l.handler,s=l.once;if(u&&(!s||!a[c])){var f=u(i,c,o);n.push(f),a[c]=!0}}}),n},vs=function(e){var r=e&&e.type;return r&&Mi[r]?Mi[r]:null},hs=function(e,r){return pi(r).indexOf(e)},ys=["children","width","height","viewBox","className","style","title","desc"];function ya(){return ya=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ya.apply(this,arguments)}function ms(t,e){if(t==null)return{};var r=gs(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function gs(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}function ma(t){var e=t.children,r=t.width,n=t.height,a=t.viewBox,i=t.className,o=t.style,c=t.title,l=t.desc,u=ms(t,ys),s=a||{width:r,height:n,x:0,y:0},f=X("recharts-surface",i);return A.createElement("svg",ya({},R(u,!0,"svg"),{className:f,width:r,height:n,style:o,viewBox:"".concat(s.x," ").concat(s.y," ").concat(s.width," ").concat(s.height)}),A.createElement("title",null,c),A.createElement("desc",null,l),e)}var bs=["children","className"];function ga(){return ga=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ga.apply(this,arguments)}function xs(t,e){if(t==null)return{};var r=Os(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Os(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}var H=A.forwardRef(function(t,e){var r=t.children,n=t.className,a=xs(t,bs),i=X("recharts-layer",n);return A.createElement("g",ga({className:i},R(a,!0),{ref:e}),r)}),je=function(e,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),i=2;i<n;i++)a[i-2]=arguments[i]};function sr(t){"@babel/helpers - typeof";return sr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sr(t)}var As=["type","size","sizeType"];function ba(){return ba=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ba.apply(this,arguments)}function zi(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function Wi(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?zi(Object(r),!0).forEach(function(n){ws(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):zi(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ws(t,e,r){return e=Ps(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ps(t){var e=Ss(t,"string");return sr(e)=="symbol"?e:String(e)}function Ss(t,e){if(sr(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(sr(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function js(t,e){if(t==null)return{};var r=Es(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Es(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}var Hc={symbolCircle:Kc,symbolCross:xu,symbolDiamond:Ou,symbolSquare:Au,symbolStar:wu,symbolTriangle:Pu,symbolWye:Su},$s=Math.PI/180,Ts=function(e){var r="symbol".concat(Dn(e));return Hc[r]||Kc},ks=function(e,r,n){if(r==="area")return e;switch(n){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var a=18*$s;return 1.25*e*e*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Is=function(e,r){Hc["symbol".concat(Dn(e))]=r},Bn=function(e){var r=e.type,n=r===void 0?"circle":r,a=e.size,i=a===void 0?64:a,o=e.sizeType,c=o===void 0?"area":o,l=js(e,As),u=Wi(Wi({},l),{},{type:n,size:i,sizeType:c}),s=function(){var g=Ts(n),O=bu().type(g).size(ks(i,c,n));return O()},f=u.className,d=u.cx,p=u.cy,m=R(u,!0);return d===+d&&p===+p&&i===+i?A.createElement("path",ba({},m,{className:X("recharts-symbols",f),transform:"translate(".concat(d,", ").concat(p,")"),d:s()})):null};Bn.registerSymbol=Is;function wt(t){"@babel/helpers - typeof";return wt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wt(t)}function xa(){return xa=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},xa.apply(this,arguments)}function Ki(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function _s(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Ki(Object(r),!0).forEach(function(n){fr(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Ki(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Cs(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Ds(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Yc(n.key),n)}}function Ms(t,e,r){return e&&Ds(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function Bs(t,e,r){return e=ln(e),Ns(t,Uc()?Reflect.construct(e,r||[],ln(t).constructor):e.apply(t,r))}function Ns(t,e){if(e&&(wt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ls(t)}function Ls(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Uc(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Uc=function(){return!!t})()}function ln(t){return ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},ln(t)}function Rs(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Oa(t,e)}function Oa(t,e){return Oa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,a){return n.__proto__=a,n},Oa(t,e)}function fr(t,e,r){return e=Yc(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Yc(t){var e=zs(t,"string");return wt(e)=="symbol"?e:String(e)}function zs(t,e){if(wt(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(wt(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var be=32,vi=function(t){Rs(e,t);function e(){return Cs(this,e),Bs(this,e,arguments)}return Ms(e,[{key:"renderIcon",value:function(n){var a=this.props.inactiveColor,i=be/2,o=be/6,c=be/3,l=n.inactive?a:n.color;if(n.type==="plainline")return A.createElement("line",{strokeWidth:4,fill:"none",stroke:l,strokeDasharray:n.payload.strokeDasharray,x1:0,y1:i,x2:be,y2:i,className:"recharts-legend-icon"});if(n.type==="line")return A.createElement("path",{strokeWidth:4,fill:"none",stroke:l,d:"M0,".concat(i,"h").concat(c,`
2
2
  A`).concat(o,",").concat(o,",0,1,1,").concat(2*c,",").concat(i,`
3
3
  H`).concat(be,"M").concat(2*c,",").concat(i,`
4
4
  A`).concat(o,",").concat(o,",0,1,1,").concat(c,",").concat(i),className:"recharts-legend-icon"});if(n.type==="rect")return A.createElement("path",{stroke:"none",fill:l,d:"M0,".concat(be/8,"h").concat(be,"v").concat(be*3/4,"h").concat(-be,"z"),className:"recharts-legend-icon"});if(A.isValidElement(n.legendIcon)){var u=_s({},n);return delete u.legendIcon,A.cloneElement(n.legendIcon,u)}return A.createElement(Bn,{fill:l,cx:i,cy:i,size:be,sizeType:"diameter",type:n.type})}},{key:"renderItems",value:function(){var n=this,a=this.props,i=a.payload,o=a.iconSize,c=a.layout,l=a.formatter,u=a.inactiveColor,s={x:0,y:0,width:be,height:be},f={display:c==="horizontal"?"inline-block":"block",marginRight:10},d={display:"inline-block",verticalAlign:"middle",marginRight:4};return i.map(function(p,m){var y=p.formatter||l,g=X(fr(fr({"recharts-legend-item":!0},"legend-item-".concat(m),!0),"inactive",p.inactive));if(p.type==="none")return null;var O=W(p.value)?null:p.value;je(!W(p.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: <Bar name="Name of my Data"/>`);var b=p.inactive?u:p.color;return A.createElement("li",xa({className:g,style:f,key:"legend-item-".concat(m)},Ve(n.props,p,m)),A.createElement(ma,{width:o,height:o,viewBox:s,style:d},n.renderIcon(p)),A.createElement("span",{className:"recharts-legend-item-text",style:{color:b}},y?y(O,p,m):O))})}},{key:"render",value:function(){var n=this.props,a=n.payload,i=n.layout,o=n.align;if(!a||!a.length)return null;var c={padding:0,margin:0,textAlign:i==="horizontal"?o:"left"};return A.createElement("ul",{className:"recharts-default-legend",style:c},this.renderItems())}}]),e}(B.PureComponent);fr(vi,"displayName","Legend");fr(vi,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});function qc(t,e,r){return e===!0?Ti(t,r):W(e)?Ti(t,e):t}function Pt(t){"@babel/helpers - typeof";return Pt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pt(t)}var Ws=["ref"];function Fi(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function Ze(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Fi(Object(r),!0).forEach(function(n){Nn(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Fi(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Ks(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Vi(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Qc(n.key),n)}}function Fs(t,e,r){return e&&Vi(t.prototype,e),r&&Vi(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Vs(t,e,r){return e=un(e),Xs(t,Zc()?Reflect.construct(e,r||[],un(t).constructor):e.apply(t,r))}function Xs(t,e){if(e&&(Pt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Jc(t)}function Zc(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Zc=function(){return!!t})()}function un(t){return un=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},un(t)}function Jc(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Gs(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Aa(t,e)}function Aa(t,e){return Aa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,a){return n.__proto__=a,n},Aa(t,e)}function Nn(t,e,r){return e=Qc(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Qc(t){var e=Hs(t,"string");return Pt(e)=="symbol"?e:String(e)}function Hs(t,e){if(Pt(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(Pt(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Us(t,e){if(t==null)return{};var r=Ys(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Ys(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}function qs(t){return t.value}function Zs(t,e){if(A.isValidElement(t))return A.cloneElement(t,e);if(typeof t=="function")return A.createElement(t,e);e.ref;var r=Us(e,Ws);return A.createElement(vi,r)}var Xi=1,dr=function(t){Gs(e,t);function e(){var r;Ks(this,e);for(var n=arguments.length,a=new Array(n),i=0;i<n;i++)a[i]=arguments[i];return r=Vs(this,e,[].concat(a)),Nn(Jc(r),"lastBoundingBox",{width:-1,height:-1}),r}return Fs(e,[{key:"componentDidMount",value:function(){this.updateBBox()}},{key:"componentDidUpdate",value:function(){this.updateBBox()}},{key:"getBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var n=this.wrapperNode.getBoundingClientRect();return n.height=this.wrapperNode.offsetHeight,n.width=this.wrapperNode.offsetWidth,n}return null}},{key:"updateBBox",value:function(){var n=this.props.onBBoxUpdate,a=this.getBBox();a?(Math.abs(a.width-this.lastBoundingBox.width)>Xi||Math.abs(a.height-this.lastBoundingBox.height)>Xi)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,n&&n(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,n&&n(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Ze({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(n){var a=this.props,i=a.layout,o=a.align,c=a.verticalAlign,l=a.margin,u=a.chartWidth,s=a.chartHeight,f,d;if(!n||(n.left===void 0||n.left===null)&&(n.right===void 0||n.right===null))if(o==="center"&&i==="vertical"){var p=this.getBBoxSnapshot();f={left:((u||0)-p.width)/2}}else f=o==="right"?{right:l&&l.right||0}:{left:l&&l.left||0};if(!n||(n.top===void 0||n.top===null)&&(n.bottom===void 0||n.bottom===null))if(c==="middle"){var m=this.getBBoxSnapshot();d={top:((s||0)-m.height)/2}}else d=c==="bottom"?{bottom:l&&l.bottom||0}:{top:l&&l.top||0};return Ze(Ze({},f),d)}},{key:"render",value:function(){var n=this,a=this.props,i=a.content,o=a.width,c=a.height,l=a.wrapperStyle,u=a.payloadUniqBy,s=a.payload,f=Ze(Ze({position:"absolute",width:o||"auto",height:c||"auto"},this.getDefaultPosition(l)),l);return A.createElement("div",{className:"recharts-legend-wrapper",style:f,ref:function(p){n.wrapperNode=p}},Zs(i,Ze(Ze({},this.props),{},{payload:qc(s,u,qs)})))}}],[{key:"getWithHeight",value:function(n,a){var i=n.props.layout;return i==="vertical"&&M(n.props.height)?{height:n.props.height}:i==="horizontal"?{width:n.props.width||a}:null}}]),e}(B.PureComponent);Nn(dr,"displayName","Legend");Nn(dr,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});function pr(t){"@babel/helpers - typeof";return pr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pr(t)}function wa(){return wa=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},wa.apply(this,arguments)}function Js(t,e){return rf(t)||tf(t,e)||ef(t,e)||Qs()}function Qs(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
phoenix/trace/fixtures.py CHANGED
@@ -28,7 +28,7 @@ from google.protobuf.wrappers_pb2 import DoubleValue, StringValue
28
28
  from httpx import ConnectError, HTTPStatusError
29
29
 
30
30
  import phoenix.trace.v1 as pb
31
- from phoenix import Client
31
+ from phoenix.session.client import Client
32
32
  from phoenix.trace.schemas import Span
33
33
  from phoenix.trace.trace_dataset import TraceDataset
34
34
  from phoenix.trace.utils import (
@@ -147,22 +147,20 @@ demo_llama_index_rag_fixture = TracesFixture(
147
147
 
148
148
  demo_code_based_agent_fixture = TracesFixture(
149
149
  name="demo_code_based_agent",
150
- project_name="demo_code_based_agent",
151
- description="Shows traces captured from a code-based agent.",
150
+ project_name="demo_agents",
151
+ description="LangGraph, LlamaIndex, and Code-based agent traces",
152
152
  file_name="agent-demo-traces.parquet",
153
153
  )
154
-
155
154
  demo_langgraph_agent_fixture = TracesFixture(
156
155
  name="demo_langgraph_agent",
157
- project_name="demo_langgraph_agent",
158
- description="Shows traces captured from a Langgraph agent.",
156
+ project_name="demo_agents",
157
+ description="LangGraph, LlamaIndex, and Code-based agent traces",
159
158
  file_name="langgraph-demo-traces-format-updated.parquet",
160
159
  )
161
-
162
160
  demo_llamaindex_workflows_agent_fixture = TracesFixture(
163
161
  name="demo_llamaindex_workflows_agent",
164
- project_name="demo_llamaindex_workflows_agent",
165
- description="Shows traces captured from a LlamaIndex Workflows agent.",
162
+ project_name="demo_agents",
163
+ description="LangGraph, LlamaIndex, and Code-based agent traces",
166
164
  file_name="llamaindex-workflow-demo-traces.parquet",
167
165
  )
168
166
 
@@ -14,7 +14,7 @@ class VersionedClient(httpx.Client):
14
14
  """
15
15
 
16
16
  def __init__(self, *args: Any, **kwargs: Any):
17
- from phoenix import __version__ as phoenix_version
17
+ from phoenix.version import __version__ as phoenix_version
18
18
 
19
19
  super().__init__(*args, **kwargs)
20
20
 
@@ -78,7 +78,7 @@ class VersionedAsyncClient(httpx.AsyncClient):
78
78
  """
79
79
 
80
80
  def __init__(self, *args: Any, **kwargs: Any):
81
- from phoenix import __version__ as phoenix_version
81
+ from phoenix.version import __version__ as phoenix_version
82
82
 
83
83
  super().__init__(*args, **kwargs)
84
84
 
phoenix/utilities/json.py CHANGED
@@ -5,6 +5,8 @@ from pathlib import Path
5
5
  from typing import Any, Mapping, Sequence, Union, get_args, get_origin
6
6
 
7
7
  import numpy as np
8
+ from strawberry import UNSET
9
+ from strawberry.types.base import StrawberryObjectDefinition
8
10
 
9
11
 
10
12
  def jsonify(obj: Any) -> Any:
@@ -19,6 +21,15 @@ def jsonify(obj: Any) -> Any:
19
21
  return [jsonify(v) for v in obj]
20
22
  if isinstance(obj, (dict, Mapping)):
21
23
  return {jsonify(k): jsonify(v) for k, v in obj.items()}
24
+ is_strawberry_type = isinstance(
25
+ getattr(obj, "__strawberry_definition__", None), StrawberryObjectDefinition
26
+ )
27
+ if is_strawberry_type:
28
+ return {
29
+ k: jsonify(v)
30
+ for field in dataclasses.fields(obj)
31
+ if (v := getattr(obj, (k := field.name))) is not UNSET
32
+ }
22
33
  if dataclasses.is_dataclass(obj):
23
34
  return {
24
35
  k: jsonify(v)
@@ -0,0 +1,70 @@
1
+ import re
2
+ from abc import ABC, abstractmethod
3
+ from string import Formatter
4
+ from typing import Any, Iterable, Set
5
+
6
+
7
+ class TemplateFormatter(ABC):
8
+ @abstractmethod
9
+ def parse(self, template: str) -> Set[str]:
10
+ """
11
+ Parse the template and return a set of variable names.
12
+ """
13
+ raise NotImplementedError
14
+
15
+ def format(self, template: str, **variables: Any) -> str:
16
+ """
17
+ Formats the template with the given variables.
18
+ """
19
+ template_variable_names = self.parse(template)
20
+ if missing_template_variables := template_variable_names - set(variables.keys()):
21
+ raise ValueError(f"Missing template variables: {', '.join(missing_template_variables)}")
22
+ return self._format(template, template_variable_names, **variables)
23
+
24
+ @abstractmethod
25
+ def _format(self, template: str, variable_names: Iterable[str], **variables: Any) -> str:
26
+ raise NotImplementedError
27
+
28
+
29
+ class FStringTemplateFormatter(TemplateFormatter):
30
+ """
31
+ Regular f-string template formatter.
32
+
33
+ Examples:
34
+
35
+ >>> formatter = FStringTemplateFormatter()
36
+ >>> formatter.format("{hello}", hello="world")
37
+ 'world'
38
+ """
39
+
40
+ def parse(self, template: str) -> Set[str]:
41
+ return set(field_name for _, field_name, _, _ in Formatter().parse(template) if field_name)
42
+
43
+ def _format(self, template: str, variable_names: Iterable[str], **variables: Any) -> str:
44
+ return template.format(**variables)
45
+
46
+
47
+ class MustacheTemplateFormatter(TemplateFormatter):
48
+ """
49
+ Mustache template formatter.
50
+
51
+ Examples:
52
+
53
+ >>> formatter = MustacheTemplateFormatter()
54
+ >>> formatter.format("{{ hello }}", hello="world")
55
+ 'world'
56
+ """
57
+
58
+ PATTERN = re.compile(r"(?<!\\){{\s*(\w+)\s*}}")
59
+
60
+ def parse(self, template: str) -> Set[str]:
61
+ return set(match for match in re.findall(self.PATTERN, template))
62
+
63
+ def _format(self, template: str, variable_names: Iterable[str], **variables: Any) -> str:
64
+ for variable_name in variable_names:
65
+ template = re.sub(
66
+ pattern=rf"(?<!\\){{{{\s*{variable_name}\s*}}}}",
67
+ repl=variables[variable_name],
68
+ string=template,
69
+ )
70
+ return template
phoenix/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "5.2.2"
1
+ __version__ = "5.3.1"