How to locate an svg dynamic element in Robot Framework - automation

While I inspect it points to the second one below. Kindly suggest how can I click it. It is a star icon for favorites
Click Element ?
<svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium jss105 css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="StarBorderIcon" xpath="3">
<path d="m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z">
</path></svg>

Related

"Model Tie Point" versus "Model Transform" for geoserver

I would like to store aerial drone images in GeoServer. I received a geotiff taken in Hawaii from a third party, geoserver displays it properly. It includes this tag:
Model Transform: 5.37534179233765e-07 0 0 -156.82095947 0 -5.37003961793385e-07 0 20.8480082400001 0 0 0 0 0 0 0 1
I received another geotiff taken in Central California, which geoserver does NOT display properly - totally black covering the entire Earth. That file contains this tag:
Model Tie Point: 0 0 0 -121.971018327814 36.8581360825247 0 640 512 0 -121.970944991581 36.858692723748 0 640 0 0 -121.971246047228 36.8585087755212 0 0 512 0 -121.970717272166 36.8583200307514 0
Assuming geoserver needs "Model Transform" to display properly, how do I convert the "Model Tie Point" to "Model Transform" with gdal?
Thanks
Tom

How to prevent labels from being cut off in matplotlib .mplstyle

I've been trying for awhile but I haven't found any rcparams that stop my xlabel from getting cut off at the bottom when doing a savefig(). It works fine if I do fig.subplots_adjust(bottom=0.15) or plt.tight_layout() before savefig(), but I'd rather the default behavior result in a nice plot.
Maybe I have something wonky in my .mplstyle? But is mostly just copy paste from seaborn. I include it below for reference:
# default seaborn aesthetic
# darkgrid + deep palette + notebook context
axes.axisbelow: True
axes.edgecolor: black
axes.facecolor: 333333
axes.grid: True
axes.labelcolor: white
axes.labelsize: 18
axes.linewidth: 0
axes.prop_cycle: cycler('color', ['30bbff', 'ff6b51', 'ffc851', '7de524', 'dbdbdb', 'ff00f3'])
axes.titlesize: 24
figure.facecolor: black
figure.figsize: 8.0, 5.5
savefig.dpi: 80
font.family: sans-serif
font.sans-serif: Arial, Liberation Sans, DejaVu Sans, Bitstream Vera Sans, sans-serif
text.color: white
grid.color: black
grid.linestyle: -
grid.linewidth: 1
image.cmap: Greys
legend.fontsize: 14
legend.frameon: False
legend.numpoints: 1
legend.scatterpoints: 1
lines.linewidth: 2
lines.markeredgewidth: 0
lines.markersize: 7
lines.solid_capstyle: round
patch.facecolor: 4C72B0
patch.linewidth: .3
xtick.color: white
xtick.direction: out
xtick.labelsize: 16
xtick.major.pad: 7
xtick.major.size: 0
xtick.major.width: 1
xtick.minor.size: 0
xtick.minor.width: .5
ytick.color: white
ytick.direction: out
ytick.labelsize: 16
ytick.major.pad: 7
ytick.major.size: 0
ytick.major.width: 1
ytick.minor.size: 0
ytick.minor.width: .5
Since your labels are somewhat larger than usual, you indeed need to leave more space at the bottom.
Instead of the default figure.subplot.bottom : 0.11 for the bottom you may use
figure.subplot.bottom : 0.15
This should work if fig.subplots_adjust(bottom=0.15) works for you. Otherwise increase the number further.

Graphing code size

I was curious if there exists a ready-made script that would provide some starting point for an ultimate code size tracker tool. To start with I'd like to be able to graph size with various optimisation options for an number of cross-compiler targets and I'm quite tempted to put this on revision timeline later as well.
So taken the output from size command:
text data bss dec hex filename
1634 0 128 1762 6e2 csv_data.o (ex libs/libxyz.a)
28 0 0 28 1c csv_data_layer.o (ex libs/libxyz.a)
1063 0 0 1063 427 http_parser.o (ex libs/libxyz.a)
1312 0 1024 2336 920 http_queries.o (ex libs/libxyz.a)
8 36 0 44 2c transport.o (ex libs/libxyz.a)
1748 0 3688 5436 153c transport_layer.o (ex libs/libxyz.a)
8 0 0 8 8 misc_allocator.o (ex libs/libxyz.a)
847 108 1 956 3bc misc_err.o (ex libs/libxyz.a)
0 4 0 4 4 misc_globals.o (ex libs/libxyz.a)
273 0 0 273 111 misc_helpers.o (ex libs/libxyz.a)
71 0 4 75 4b misc_printf.o (ex libs/libxyz.a)
1044 0 44 1088 440 misc_time.o (ex libs/libxyz.a)
3724 0 0 3724 e8c xyz.o (ex libs/libxyz.a)
627 0 0 627 273 dummy.o (ex libs/libxyz.a)
8 16 0 24 18 dummy_layer.o (ex libs/libxyz.a)
12395 164 4889 17448 4428 (TOTALS)
With most of values being different when the library is being compiled with various optimisation flags (i.e.: -Os, -O0, -O1, -O2) and a variety of cross-compilers (e.g.: AVR, MSP430, ARMv6, i386), I'd like to make a combined graph or set of graphs using either gnuplot, d3.js, matplotlib or any other package. Has anyone have a seen ready-made script which would help this partially (e.g. at least convert the above tabular format to CSV, JSON or XML) or some study paper that presents a decent visualisation example? I have to admit, it's rather hard to find this using a web search engine.
Here is a possible visualization of the data as bar chart using gnuplot. This is of course not the ultimate visualization, but should be a good starting point.
set style data histogram
set style histogram rowstacked
set style fill solid 1.0 border lc rgb "white"
set xtics rotate 90
set key outside reverse Left
set bmargin 8
plot 'file.dat' using (!(stringcolumn(6) eq "(TOTALS)") ? column(1) : 1/0):xtic(6) title columnheader(1), \
for [i=2:5] '' using (!(stringcolumn(6) eq "(TOTALS)") ? column(i) : 1/0) title columnheader(i)
With the settings set terminal pngcairo size 1000,800, this gives
You must also decide, which columns you want to use, because plotting every column for every file for every compiler will be quite messy. Maybe you want to plot only the size:
set style data histogram
set style histogram clustered
set style fill solid 1.0 noborder
set xtics rotate 90
set key outside reverse Left
set bmargin 8
plot 'file.dat' using (!(stringcolumn(6) eq "(TOTALS)") ? $4 : 1/0):xtic(6) title 'i386', \
'' using (!(stringcolumn(6) eq "(TOTALS)") ? $4*1.2 : 1/0) title 'ARMv6',\
'' using (!(stringcolumn(6) eq "(TOTALS)") ? $4*0.7 : 1/0) title 'AVR'
Which gives you:
Note, that the lengthy using statements are only to skip the last line with the TOTAL. Alternatively you could also remove this last line with head, either when generating the data files, or on-the-fly like this:
plot '< head -n -1 file.dat' using 4:xtic(6) title 'i386', \
'' using ($4*1.2) title 'ARMv6',\
'' using ($4*0.7) title 'AVR'
Of course, for your real data you would have something like
plot '< head -n -1 file-i386.dat' using 4:xtic(6) title 'i386', \
'< head -n -1 file-armv6.dat' using ($4*1.2) title 'ARMv6',\
'< head -n -1 file-avr.dat' using ($4*0.7) title 'AVR'
I hope, this gives you an idea of different visualization possiblities. What might be appropriate, you must decide by yourself.

Detect position of watermark in a pdf

I am on ubuntu.
I have a pdf file with pages divided into a grid. Each block of the grid contains name/age/dob/photo of a candidate. some records have a watermark "disqualified"
I need to scrape his pdf, with disqualified candidates in a separate list.
Using pyPdf I was able to get individual records, but it also includes watermarked candidates.
How to detect the watermark? If I can get the coordinates of the watermark, how do I match it with the candidate?
I am open to solutions other than python pyPdf
(Actually this is not an answer but merely an analysis to bit for a comment.)
I don't know pyPdf (or any python PDF classes) myself, but here is how the watermark is created for a sample entry; based upon this, anyone knowing pyPDF well enough, may more easily advice.
The Roundup
Depending on how pyPDF (or other python PDF classes) allows access to the page content, there are two major basic approaches:
If the class returns information on content (text and image) in their order in the page content stream: The watermark image xobject is referred to right before the data of the entry. Thus, any entry preceded by the drawing of a xobject image is marked.
If otherwise the information are not given in the order indicated by the page content stream, coordinate comparison must be used which per se is quite straight forward. In that case it might be of interest that the images are inserted with a [0.1 0 0 0.1 0 0] transformation matrix in action while the text is drawn with an identity transformation matrix.
The Details
This is entry # 200; the other watermarked entry is constructed similarly:
Watermarking is done by means of an image xobject. There is but one image xobject defined for the page used by both watermarked entries:
4 0 obj
<</Type/Page/MediaBox [0 0 595 841]
/Rotate 0/Parent 3 0 R
/Resources<</ProcSet[/PDF /ImageC /ImageI /Text]
/ColorSpace 18 0 R
/ExtGState 19 0 R
/XObject 20 0 R
/Font 21 0 R
>>
/Contents 5 0 R
>>
endobj
20 0 obj
<</R17
17 0 R>>
endobj
17 0 obj
<</Subtype/Image
/ColorSpace 16 0 R
/Width 128
/Height 88
/BitsPerComponent 8
/Filter/FlateDecode/Length 463>>stream
[...]
endstream
endobj
In the content stream this xobject /R17 is inserted right before the data of the entry itself is drawn:
q 0.1 0 0 0.1 0 0 cm
[...]
q 1045 0 0 495 462.5 6510.5 cm
/R17 Do
Q
q
10 0 0 10 0 0 cm BT
0.000487366 Tc
/R10 8 Tf
1 0 0 1 86 650.75 Tm
(Sex : Male)Tj
0.000304794 Tc
-64 0 Td
(Age : 43)Tj
-0.000140686 Tc
-1 11.05 Td
(House No :)Tj
-0.00002085 Tc
1 31.95 Td
(Name :)Tj
0.00008575 Tc
/R12 7.15 Tf
25.5 17.8 Td
( 200 )Tj
ET
Q
1547.5 6475 485 535.5 re
S
q
10 0 0 10 0 0 cm BT
-0.000403137 Tc
/R14 8 Tf
1 0 0 1 145.1 708.5 Tm
(XVX0001081)Tj
0.000421651 Tc
/R14 7.05 Tf
-90.35 -14.95 Td
(Ramesh Kumar)Tj
0.000373332 Tc
/R10 7.05 Tf
-33 -12.75 Td
(Father's )Tj
0.000193787 Tc
7.3 TL
(Name)'
0.00037774 Tc
/R14 7.05 Tf
40.25 1.8 Td
(Ram Singh)Tj
0 Tc
2.5 -11.85 Td
(37)Tj
0.00137196 Tc
/R12 7.15 Tf
-5.25 13.35 Td
(:)Tj

Issues in printing time series graph from pandas dataframe

I have a DataFrame object with a datetime as index:
In [210]:
f
f.plot(legend=True)
Out[210]:
user_time sys_time wait_io_time
date_time
2012-11-01 08:59:27 3 1 0
2012-11-01 08:59:32 0 0 0
2012-11-01 08:59:37 20 2 1
2012-11-01 08:59:42 0 0 0
2012-11-01 08:59:47 0 0 0
f.plot() causes this error:
-> 1367 plot_obj.generate()
--> 674 self._make_plot()
-> 1000 self._make_ts_plot(data, **self.kwds)
---> 81 left, right = _get_xlim(ax.get_lines())
--> 220 left = min(x[0].ordinal, left)
AttributeError: 'numpy.int64' object has no attribute 'ordinal'
I do see one line graph, displaying values from the user_time data, so suspecting that the data values from sys_time may be causing the issue. Following suggestion from https://github.com/pydata/pandas/issues/1737, I installed a newer version of matplotlib (1.1.1) but no luck, and plotting fails on the data from the bug url as well.
This seems to work with latest matplotlib library installed. I forgot to restart the ipython notebook process or reload the matplotlib after I upgraded it.