With a pool of skilled data scientists and our AI software, we are always ready to turn your raw data into useful information. Our data mining is based on:
Decisions? Decisions? and Decisions? The success of your business largely depends on the quality and effectiveness of its decisions. At Thematiz, we give meainful report on data processing and help you make decisions based on:
We work to turn your data into currency. We use your data as well as external data to:
$850/mo
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur quisquam, rerum ea, ipsa delectus, voluptates vel quaerat sed maxime libero vitae natus amet!
$5,425
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur quisquam, rerum ea, ipsa delectus, voluptates vel quaerat sed maxime libero vitae natus amet!
$1,050/mo
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur quisquam, rerum ea, ipsa delectus, voluptates vel quaerat sed maxime libero vitae natus amet!
$4,200
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur quisquam, rerum ea, ipsa delectus, voluptates vel quaerat sed maxime libero vitae natus amet!


 There are many people in the world with amazing talents who realize only a small percentage of their potential.
We also know those epic stories, those modern-day legends surrounding the early failures of such supremely successful folks as Michael Jordan and Bill Gates. We can look a bit further back in time to.
Motivation is not an accident or something that someone else can give you — you are the only one with the power to motivate you. Motivation cannot be an external force, it must come from within as the.


DTC will help you make stuff faster! You enter what you want to make, how much you want, and how many mines you have. It will tell you where to place your mines, as well as how many of each material (and, if applicable, how long) it will require.
In the "Everything You Need" list, the number in [brackets] represents the number of assigned stations of that type. You can add smelting, crafting, etc. stations by clicking the plus sign (+). To help indicate bottlenecks, the longest time in the list will appear in red.
In the last column, enter your current inventory of the materials you need.
To keep things clear, coal smelted from trees is called "charcoal."
If you're morbidly curious about how this site works, check out the repo.


Enhanced Stats
followers
TOTAL REACH
NEXT MILESTONE
0
MILESTONE REACHED
You are currently at
/
which is
to reach your next milestone
views from previous milestone which was
views
Type
Count
Views
Reads
Ratio
Fans
Claps
C/F


Details
Language: C++
Specs:
Read Input from text file
Prompt the user for a menu selection
Display an organized list from the input file
Validate, then add a new list item based on user-input, update index
Validate, then remove a list item based on user-input, update index
Validate, then search the list based on user-input
Save all entries/removals back to the text file and exit the program
An application for organizing libraries of various
types (ie. music, book, photos, contacts), demonstrating
linked lists in C++. Upon running the application,
the program reads input from a text file, then prompts
the user with a menu of operations they can perform on
the library.
Example Input/Output:
Music Library
1) Display all songs
2) Add new song
3) Remove song
4) Search song by artist
5) Search song by album
6) Save all and Quit
Enter Menu Option: 1
Index: 0
Title: A Boy Named Sue
Artist: Johnny Cash
Duration: 3:22
Album: Live at Folsom Prison
Index: 1
Title: Blackbird
Artist: The Beatles
Duration: 4:26
Album: The White Album
Index: 2
Title: The Sound of Silence
Artist: Simon and Garfunkel
Duration: 3:05
Album: Wednesday Morning
Index: 3
Title: Ring of Fire
Artist: Johnny Cash
Duration: 3:15
Album: The Best of Johnny Cash
Enter Menu Option: 4
Enter the Artist name you'd like to search for: Johnny Cash
There are 2 items for the artist 'Johnny Cash'
Index: 3
Title: Ring of Fire
Artist: Johnny Cash
Duration: 3:15
Album: The Best of Johnny Cash
Index: 0
Title: A Boy Named Sue
Artist: Johnny Cash
Duration: 3:22
Album: Live at Folsom Prison
Enter Menu Option: 3
Enter the song index you'd like to remove: 6
Index not found.
Enter Menu Option: 3
Enter the song index you'd like to remove: 0
Index '0' Removed.
Enter Menu Option: 2
Add Song Title: test-Title
Add Artist Name: test-Artist
Add Song Duration: 10:00
Add Song Album: test-Album
Add Song 'test-Title;test-Artist;10:00;test-Album' ? (Y/N): y
Enter Menu Option: 1
Index: 0
Title: Blackbird
Artist: The Beatles
Duration: 4:26
Album: The White Album
Index: 1
Title: The Sound of Silence
Artist: Simon and Garfunkel
Duration: 3:05
Album: Wednesday Morning
Index: 2
Title: Ring of Fire
Artist: Johnny Cash
Duration: 3:15
Album: The Best of Johnny Cash
Index: 3
Title: test-Title
Artist: test-Artist
Duration: 10:00
Album: test-Album
Enter Menu Option: 6


Calling all people who are passionate about creating digital experiences.
- Front end developers
- UX & Visual Designers
- DIY enthusiasts- Marketers
- Content & Tech Writers
- Digital agency heads
- You! Role doesn’t matter. Intent does.
A special call to all institutions for design and technology learning
- Students
- Educators
- Maker/ Inventor Clubs


{% if use_twitter_card %} {% endif %}
On a phone:Tap the edges of the page
On a computer:Click the edges of the page, or use the arrow keys, the space bar, the trackpad, or the scroll wheel
On paper:Print it out
Basically, everything works


Two men found murdered in Sivakasi
The men, who were working as loadmen in different sheds left home on Sunday night and did not return, police said
by S SundarIn a suspected case of double murder, bodies of two manual labourers G. Arjunan 33, and S. Murugan 32, were found with deep cut injuries at different places in Sivakasi in the early hours of Monday. Both were working as loadmen in different lorry sheds.
Police said that while the body of Arjunan of Anna Nagar was found near the Coronation bus stop, the body of Murugan of Vivekanandar Colony was found lying some 300 metres away in Nehru Colony. The murders could have occurred in the small hours of Monday, police said.
Police said that both men had left home at around 8 p.m. on Sunday and never returned. Superintendent of Police, P. Perumal, inspected the scene of crime.
The bodies have been taken to the Government hospital here. The police are probing whether the murders took place elsewhere and the bodies dumped at different spots.
Sivakasi Town and Sivakasi East police stations have registered cases.


We all fall victim to laziness, but if you procrastinate updating your software:
- You'll miss out on exciting new features!
- You leave your computer vulnerable to new threats
- If infected, you risk passing on malware to other devices on your network
- Your functionality and security will be outdated


Money Play. How should Red play 44?
pips Red=145 White=141
(CorrectAnswer= 0/0, ErrorScore= 0)
This is simply an exercise in logic. Red will be ahead in the race and so he wants to race. He will have trouble clearing his 16-pt whatever he does, and he will need to roll another double to clear that point safely.
Meanwhile he needs time, and this is best crated by playing 13/9(4). That gives him plenty of spares and flexibility.
This type of move is often overlooked but here any other move is a blunder or worse.
Meanwhile he needs time, and this is best crated by playing 13/9(4). That gives him plenty of spares and flexibility.
This type of move is often overlooked but here any other move is a blunder or worse.
1. Cubeful 2-ply 13/9(4) Eq.: +0.281 0.595 0.030 0.000 - 0.405 0.018 0.000 2. Cubeful 2-ply 13/5 13/9 6/2 Eq.: +0.171 (-0.110) 0.559 0.039 0.000 - 0.441 0.040 0.000 3. Cubeful 2-ply 13/1 13/9 Eq.: +0.170 (-0.111) 0.559 0.041 0.000 - 0.441 0.044 0.000 4. Cubeful 2-ply 13/5 13/9 8/4 Eq.: +0.169 (-0.112) 0.558 0.041 0.000 - 0.442 0.040 0.000 5. Cubeful 2-ply 13/9(2) 6/2(2) Eq.: +0.165 (-0.116) 0.558 0.036 0.000 - 0.442 0.041 0.000


The Z-Shell, `zsh' for short, is a command interpreter for UNIX systems, or in UNIX jargon, a `shell', because it wraps around the commands you use. More than that, however, zsh is a particularly powerful shell --- and it's free, and under regular maintenance --- with lots of interactive features allowing you to do the maximum work with the minimum fuss. Of course, for that you need to know what the shell can do and how, and that's what this guide is for.
The most basic basics: I shall assume you have access to a UNIX system, otherwise the rest of this is not going to be much use. You can also use zsh under Windows by installing Cygwin, which provides a UNIX-like environment for programmes --- given the weakness of the standard Windows command interpreter, this is a good thing to do. There are ports of older versions of zsh to Windows which run natively, i.e. without a UNIX environment, although these have a slightly different behaviour in some respects and I won't talk about them further.
I'll also assume some basic knowledge of UNIX; you should know how the
filesystem works, i.e. what /home/users/pws/.zshrc
and ../file
mean, and some basic commands, for example ls
, and you should have
experience with using rm
to delete completely the wrong file by
accident, and that sort of thing. In something like `rm file
', I will
often refer to the `command' (rm
, of course) and the `argument(s)'
(anything else coming after the command which is used by it), and to the
complete thing you typed in one go as the `command line'.
You're also going to need zsh itself; if you're reading this, you may well already have it, but if you don't, you or your system administrator should read Appendix A.
Now to the shell. After you log in, you probably see some prompt (a
series of symbols on the screen indicating that you can input a command),
such as `$
' or `%
', possibly with some other text in front ---
later, we'll see how you can change that text in interesting ways. That
prompt comes from the shell. Type `print hello
', then backspace over
`hello
' and type `goodbye
'. Now hit the `Return' key (or `Enter'
key, I'll just say <RET>
from now on, likewise <TAB>
for the tab
key, <SPC>
for the space key); unless you have a serious
practical-joker problem on your system, you will see `goodbye
', and
the shell will come back with another prompt. All of the time up to when
you hit <RET>
, you were interacting with the shell and its editor,
called `Z-Shell Line Editor' or `zle' for short; only then did the shell go
away and tell the print
command to print out a message. So you can see
that the shell is important.
However, if all you're doing is typing simple commands like that, why do you need anything complicated? In that case, you don't; but real life's not that simple. In the rest of this guide, I describe how, with zsh's help, you can:
mv
or ls
using zsh's very sophisticated filename generation
(known colloquially as `globbing') system,
Some other things you should probably know straight away. First, the shell
is always running, even when the command you typed is running, too; the
shell simply hangs around waiting for it to finish: you may know from other
shells about putting commands in the background by putting an `&
'
after the command, which means that the shell doesn't wait for them to
finish. The shell is there even if the command's in the foreground, but in
this case doing nothing.
Second, it doesn't just run other people's commands, it has some of its own, called builtin commands or just builtins, and you can even add your own commands as lists of instructions to the shell called functions; builtins and functions always run in the shell itself. That's important to know, because things which don't run in the shell itself can't affect it, and hence can't alter parameters, functions, aliases, and all the other things I shall talk about.
If you want a basic grounding in how shells work, what their syntax is (i.e. how to write commands), and how to write scripts and functions, you should read one of the many books on the subject. In particular, you will get most out of a book that describes the Korn shell (ksh), as zsh is very similar to this --- so similar that it will be worth my while pointing out differences as we go along, since they can confuse ksh users. Recent versions of zsh can emulate ksh (strictly, the 1988 version of ksh, although there are increasingly features from the 1993 version) quite closely, although it's not perfect, and less perfect the more closely you look. However, it's important to realise that if you just start up any old zsh there is no guarantee that it will be set up to work like ksh; unless you or your system adminstrator have changed some settings, it certainly won't be. You might not see that straight away, but it affects the shell in subtle ways. I will talk about emulation a bit more later on.
A few other shells are worth mentioning. The grandfather of all UNIX shells is sh, now known as the Bourne shell but originally just referred to as `the shell'. The story is similar to ksh: zsh can emulate sh quite closely (much more closely than ksh, since sh is considerably simpler), but in general you need to make sure it's set up to do that before you can be sure it will emulate sh.
You may also come across the `Bourne-Again Shell', bash. This is a freely-available enhancement of sh written by the GNU project --- but it is not always enhanced along the lines of ksh, and hence in many ways it is very different from zsh. On some free UNIX-like systems such as Linux/GNU (which is what people usually mean by Linux), the command sh is really bash, so there you should be extra careful when trying to ensure that something which runs under the so-called `sh' will also run under zsh. Some Linux systems also have another simpler Bourne shell clone, ash; as it's simpler, it's more like the original Bourne shell.
Some more modern operating systems talk about `the POSIX shell'. This is an attempt to standardize UNIX shells; it's most like the Korn shell, although, a bit confusingly, it's often just called sh, because the standard says that it should be. Usually, this just means you get a bit extra free with your sh and it still does what you expect. Zsh has made some attempts to fit the standard, but you have to tell it to --- again, simply starting up `zsh' will not have the right settings for that.
There is another common family of shells with, unfortunately, incompatible syntax. The source of this family is the C-Shell, csh, so called because its syntax looks more like the C programming language. This became widespread when the only other shell available was sh because csh had better interactive features, such as job control. It was then enhanced to make tcsh, which has many of the interactive features you will also find in zsh, and so became very popular. Despite these common features, the syntax of zsh is very different, so you should not try and use csh/tcsh commands beyond the very simplest in zsh; but if you are a tcsh user, you will find virtually every capability you are used to in zsh somewhere, plus a lot more.
At the time of writing, the most recent version of zsh available for widespread use was 4.0.6. You will commonly find two sets of older zsh's around. The 3.0 series, of which the last release was 3.0.9, was a stable release, with only bug fixes since the first release of zsh 3. The 3.1 series were beta versions, with lots of new features; the last of these, 3.1.9, was not so different from 4.0.1; the main change is that the shell has now been declared stable, so that as with zsh 3 there will be a set of bug fixes, labelled 4.0, and a set with new functions in, labelled 4.1. As 4.0 replaces all zsh 3 versions, I will try to keep things simple and talk about that; but every now and then it will be helpful to point out where older versions were different.
One notable feature of zsh is the completion of command line arguments. The system changed in 3.1.6 and 3.1.7 to make it a lot more configurable, and (provided you keep your wits about you) a little less obscure. I therefore won't describe the old completion system, which used the `compctl' command, in any detail; a very brief introduction is given in the zsh FAQ. The old system remains available, however we strongly recommend new users to start with the new one. See chapter 6 `Completion, old and new' for the lowdown on new-style completion.
There won't be a big difference between 4.0 and 4.1, just bug fixes and a few evolutionary changes, plus some extra modules. There will be some notes in chapter 7 about new features in 4.1, but nothing you write for 4.0 is likely to become obsolete in the foreseeable future.
Most of what I say will be reasonably self-contained (which means I use phrases like `as I said before' and `as I'll discuss later on' more than a real stylist would like, and the number times I refer to other chapters is excessive), but there are some points I should perhaps draw your attention to before you leap in.
I will often write chunks of code as you would put them in a file for execution (a `script' or a `function', the differences to be discussed passim):
if [[ $ZSH_VERSION = 3.* ]]; then print This is a release of the third version of zsh. else print This is either very new or very old. fibut sometimes I will show both what you type into a shell interactively, and what the shell throws back at you:
% print $ZSH_VERSION 3.1.9 % print $CPUTYPE i586Here, `
%
' shows the prompt the shell puts up to tell you it is
expecting input (and the space immediately after is part of it). Actually,
you probably see something before the percent sign like the name of the
machine or your user name, or maybe something fancier. I've pruned it to
the minimum to avoid confusion, and kept it as reminder that this is the
line you type.
If you're reading an electronic version of this guide, and want to copy
lines with the `%
' in front into a terminal to be executed, there's a
neat way of doing this where you don't even have to edit the line first:
alias %=' 'Then
%
at the start of a line is turned into nothing whatsoever; the
space just indicates that any following aliases should be expanded. So the
line `% print $CPUTYPE
' will ignore the `%
' and execute the rest of
the line. (I hope it's obvious, but your own prompt is always ignored;
this is just if you copy the prompts from the guide into the shell.)
There are lots of different types of object in zsh, but one of the most
common is parameters, which I will always show with a `$
' sign in
front, like `$ZSH_VERSION
', to remind you they are parameters. You
need to remember that when you're setting or fiddling with the parameter
itself, rather than its value, you omit the `$
'. When you do and don't
need it should become clearer as we go along.
The other objects I'll show specially are shell options --- choices about
how the shell is to work --- which I write like this: `SH_WORD_SPLIT
',
`NO_NOMATCH
', `ZLE
'. Again, that's not the whole story since
whenever the shell expects options you can write them in upper or lower
case with as many or as few underscores as you like; and often in code
chunks I'll use the simplest form instead: `shwordsplit
',
`nonomatch
', `zle
'. If you're philosophical you can think of it as
expressing the category difference between talking about programming and
actual programming, but really it's just me being inconsistent.
You may find it odd that I use three hyphens to signify a dash. That's actually a convention used in the printed version of this guide, which is made with LaTeX. One day, I will turn this into a macro and it will appear properly in other versions; but then, one day the universe will come to an end.
I am grateful for comments from various zsh users. In particular, I have had detailed comments and corrections from Bart Schaefer, Sven `Mr Completion' Wischnowsky and Oliver Kiddle. It's usual to add that any remaining errors are my own, but that's so stark staringly obvious as to be ridiculous. I mean, who wrote this? Never mind.
Most of this written on one or another release of Linux Mandrake (a derivative of Red Hat), with the usual GNU and XFree86 tools. Since all of this was free, it only seems fair to say `thank you' for the gift. It also works a lot better than the operating system that came with this particular PC.


Create Account
Your full name
Username
Email
Password
Re-enter password:
Choose Gender
Male
Female
Other
Already have an account?
Click here


pymatgen.vis.plotters module¶
-
class
SpectrumPlotter
(xshift=0.0, yshift=0.0, stack=False, color_cycle=('qualitative', 'Set1_9'))[source]¶ Bases:
object
Class for plotting Spectrum objects and subclasses. Note that the interface is extremely flexible given that there are many different ways in which people want to view spectra. The typical usage is:
# Initializes plotter with some optional args. Defaults are usually # fine, plotter = SpectrumPlotter() # Adds a DOS (A kind of spectra) with a label. plotter.add_spectrum("Total DOS", dos) # Alternatively, you can add a dict of DOSs. This is the typical # form returned by CompleteDos.get_spd/element/others_dos(). plotter.add_spectra({"dos1": dos1, "dos2": dos2})
Parameters: - xshift (float) – A shift that is applied to the x values. This is commonly used to shift to an arbitrary zero. E.g., zeroing at the Fermi energy in DOS, or at the absorption edge in XAS spectra. The same xshift is applied to all spectra.
- yshift (float) – A shift that is applied to the y values. This is commonly used to displace spectra for easier visualization. Successive spectra are applied successive shifts.
- stack (bool) – Whether to stack plots rather than simply plot them. For example, DOS plot can usually be stacked to look at the contribution of each orbital.
- color_cycle (str) – Default color cycle to use. Note that this can be overridden
-
add_spectra
(spectra_dict, key_sort_func=None)[source]¶ Add a dictionary of doses, with an optional sorting function for the keys.
Parameters: - dos_dict – dict of {label: Dos}
- key_sort_func – function used to sort the dos_dict keys.
-
add_spectrum
(label, spectrum, color=None)[source]¶ Adds a Spectrum for plotting.
Parameters: - label (str) – Label for the Spectrum. Must be unique.
- spectrum – Spectrum object
- color (str) – This is passed on to matplotlib. E.g., “k–” indicates a dashed black line. If None, a color will be chosen based on the default color cycle.
-
get_plot
(xlim=None, ylim=None)[source]¶ Get a matplotlib plot showing the DOS.
Parameters: - xlim – Specifies the x-axis limits. Set to None for automatic determination.
- ylim – Specifies the y-axis limits.


A while ago, I forked the ActiveAndroid repository to add some of my own changes to the ORM framework. Today I wanted to use the library again, use the new changes that the original maintainer has implemented, and also use my own changes. It turned out to be easier than I thought, despite there being 112 commits between the original repo and my forked version. Here's what I did
I have a VPS server where I'm compiling CyanogenMod and some android kernels. To compile CyanogenMod we need to pull some vendor specific "prebuilts" i.e. binaries. Connecting the server to the device connected to my laptop is actually quite trivial.
Here's a small overview of my progress in fixing bug #924609.
In this post I will talk about my experience with building the Firefox OS emulator. It's a simple process but the documentation is spread out over a couple of pages in the MDN.
In this post, I walk through the implementation of the Edit Note screen pictured below
In this post, I will polish up the application and address one of its shortcomings: hidden list items. I did not test the list functionality fully when developing the application. This is what caused the bug to slip under the radar.
I have volunteered to help fix a bug in Firefox OS. The bug is pretty small. It can be summed up as follows. When you attach a video to the SMS application, it shows a generic icon. Ideally it should show a thumbnail preview. In this post, I will explain my understanding of how the Gaia video application generates a thumbnail from a video.
This is the final day in which I worked on the Simple Notes application. I implemented a due date for each note.
The next functionality I decided to implement was the ability to delete multiple notes at once. I originally planned to implement this functionality along with the index section, but there were a lot of little details that I overlooked during the planning phase that set me back.
In this post, I will outline the modifications I did to the Simple Notes app in order to create the index screen.
Over the next couple of days I will be creating an application that will store notes for the user. I will not spend more than 4 days working on it, so my top priority will be basic functionality and polish/features will follow afterward.
In this thread I will cover my experience building the Gaia interface from the source code. I followed the Quickstart Guide at MDN.
This post will explain a caveat of the IndexedDB API that I have encountered and my work around.
In this post we will wrap up IndexedDB by exploring cursors and indexes. Make sure you read part 1 and part 2.
In this post, we will cover how to add, get, update, and delete records from IndexedDB.
In this post, I will introduce IndexedDB. As the name suggests, it is a lightweight database. It's not a relational database however, it's a key-value database. It maps keys to javascript objects (or primitives). The API is a little more difficult to grasp than the other APIs offered by Firefox OS so this post is broken up into two parts. The first part will talk about how to create the structure of the database, and how to open and close the database.
This post will give a short demonstration of the Device Storage API.
This post documents my experience submitting a bug report to the Firefox OS project. The bug resides here. Hopefully it's not a duplicate (I searched for a while), and hopefully it will benefit the project in the long run.
The Contacts part of the API Showcase application does not show a lot of information to the user. All the information is displayed in the console. A good way to remedy is to use the Status building block.
This post will show one way to implement the Confirm dialog from the building blocks. We will ask the user confirmation when deleting all contacts. We will be using the Transitions to show and hide the dialog.
Last post we explored the Contact API, but ran into permissions problems. This post, we'll show the fix and show the last part of the contacts API. Try the (working) demo and check out the source code.
In this post we will be exploring the Contact API.
In this post, we will take a quick look at the WebActivity API. WebActivities are basically parts of apps that register with the system. When a user wants to perform a certain action that many apps can accomplish (like share, choose an image, take a photo, etc), the system will present the user with all the registered applications that can accomplish that action.
On the previous post, we finished implementing a drawer but we didn't have true navigation functionality. The drawer simply changed the button that the user was able to click. In this post, we will use Transitions.
Building on our previous work, we're going to separate the notification demos, from the alarm demos using the Drawer. Download BuildingBlocks here.
Before we keep exploring WebAPI, we can take a moment to build a UI foundation our API Showcase app. I previously mentioned Gaia Building Blocks. It's a mini GUI framework for Firefox OS. So far, the application only showcases 2 APIs: Notification and Alarm. Let's examine the Button building block
This post will cover the Alarm API. Instead of creating a brand new application, we will modifying the API Showcase
app. As always, I would encourage you to try the demo.
This article will show how to use the Notification API. We will be building the app API Showcase
through the rest of these series to quickly test each new API. Try the demo of version one
In this post were going to explore the (small) BatteryManager API.
In this post, we modify the previous app to create an analog clock using images. Try the Demo
In this post, we create a simple clock app.
This post will give an overview of Firefox OS. The audience are developers of mobile applications.
This is the first entry to the blog series dedicated to developing mobile applications for Firefox OS.


Which are the number One Hundred?
1001,000100 Longer answerwith line breaks.
There is more than one correct answer.
Both '100' and '100' are correct answers.
Which is the letter A?
BAC
This is an answer description with a hyperlink.
Which is the number One Hundred?
1,000,0001,000100
This is a hint with a hyperlink.


Word Counter using Javascript, jQuery
Paste or type your text to the textbox below to get the word and character count
0
Words
0
Characters
(including trails)
0
Characters
(excluding trails)
0
Characters
(excluding all spaces)


call is a helper object for making simpler assertions, for comparing with call_args, call_args_list, mock_calls and :attr: ~Mock.method_calls. call can also be used with assert_has_calls().
>>> m = MagicMock(return_value=None)
>>> m(1, 2, a='foo', b='bar')
>>> m()
>>> m.call_args_list == [call(1, 2, a='foo', b='bar'), call()]
True
For a call object that represents multiple calls, call_list returns a list of all the intermediate calls as well as the final call.
call_list is particularly useful for making assertions on “chained calls”. A chained call is multiple calls on a single line of code. This results in multiple entries in mock_calls on a mock. Manually constructing the sequence of calls can be tedious.
call_list() can construct the sequence of calls from the same chained call:
>>> m = MagicMock()
>>> m(1).method(arg='foo').other('bar')(2.0)
<MagicMock name='mock().method().other()()' id='...'>
>>> kall = call(1).method(arg='foo').other('bar')(2.0)
>>> kall.call_list()
[call(1),
call().method(arg='foo'),
call().method().other('bar'),
call().method().other()(2.0)]
>>> m.mock_calls == kall.call_list()
True
A call object is either a tuple of (positional args, keyword args) or (name, positional args, keyword args) depending on how it was constructed. When you construct them yourself this isn’t particularly interesting, but the call objects that are in the Mock.call_args, Mock.call_args_list and Mock.mock_calls attributes can be introspected to get at the individual arguments they contain.
The call objects in Mock.call_args and Mock.call_args_list are two-tuples of (positional args, keyword args) whereas the call objects in Mock.mock_calls, along with ones you construct yourself, are three-tuples of (name, positional args, keyword args).
You can use their “tupleness” to pull out the individual arguments for more complex introspection and assertions. The positional arguments are a tuple (an empty tuple if there are no positional arguments) and the keyword arguments are a dictionary:
>>> m = MagicMock(return_value=None)
>>> m(1, 2, 3, arg='one', arg2='two')
>>> kall = m.call_args
>>> args, kwargs = kall
>>> args
(1, 2, 3)
>>> kwargs
{'arg2': 'two', 'arg': 'one'}
>>> args is kall[0]
True
>>> kwargs is kall[1]
True
>>> m = MagicMock()
>>> m.foo(4, 5, 6, arg='two', arg2='three')
<MagicMock name='mock.foo()' id='...'>
>>> kall = m.mock_calls[0]
>>> name, args, kwargs = kall
>>> name
'foo'
>>> args
(4, 5, 6)
>>> kwargs
{'arg2': 'three', 'arg': 'two'}
>>> name is m.mock_calls[0][0]
True
Create a mock object using another object as a spec. Attributes on the mock will use the corresponding attribute on the spec object as their spec.
Functions or methods being mocked will have their arguments checked to ensure that they are called with the correct signature.
If spec_set is True then attempting to set attributes that don’t exist on the spec object will raise an AttributeError.
If a class is used as a spec then the return value of the mock (the instance of the class) will have the same spec. You can use a class as the spec for an instance object by passing instance=True. The returned mock will only be callable if instances of the mock are callable.
create_autospec also takes arbitrary keyword arguments that are passed to the constructor of the created mock.
See Autospeccing for examples of how to use auto-speccing with create_autospec and the autospec argument to patch().
Sometimes you may need to make assertions about some of the arguments in a call to mock, but either not care about some of the arguments or want to pull them individually out of call_args and make more complex assertions on them.
To ignore certain arguments you can pass in objects that compare equal to everything. Calls to assert_called_with() and assert_called_once_with() will then succeed no matter what was passed in.
>>> mock = Mock(return_value=None)
>>> mock('foo', bar=object())
>>> mock.assert_called_once_with('foo', bar=ANY)
ANY can also be used in comparisons with call lists like mock_calls:
>>> m = MagicMock(return_value=None)
>>> m(1)
>>> m(1, 2)
>>> m(object())
>>> m.mock_calls == [call(1), call(1, 2), ANY]
True
FILTER_DIR is a module level variable that controls the way mock objects respond to dir (only for Python 2.6 or more recent). The default is True, which uses the filtering described below, to only show useful members. If you dislike this filtering, or need to switch it off for diagnostic purposes, then set mock.FILTER_DIR = False.
With filtering on, dir(some_mock) shows only useful attributes and will include any dynamically created attributes that wouldn’t normally be shown. If the mock was created with a spec (or autospec of course) then all the attributes from the original are shown, even if they haven’t been accessed yet:
>>> dir(Mock())
['assert_any_call',
'assert_called_once_with',
'assert_called_with',
'assert_has_calls',
'attach_mock',
...
>>> import urllib2
>>> dir(Mock(spec=urllib2))
['AbstractBasicAuthHandler',
'AbstractDigestAuthHandler',
'AbstractHTTPHandler',
'BaseHandler',
...
Many of the not-very-useful (private to Mock rather than the thing being mocked) underscore and double underscore prefixed attributes have been filtered from the result of calling dir on a Mock. If you dislike this behaviour you can switch it off by setting the module level switch FILTER_DIR:
>>> import mock
>>> mock.FILTER_DIR = False
>>> dir(mock.Mock())
['_NonCallableMock__get_return_value',
'_NonCallableMock__get_side_effect',
'_NonCallableMock__return_value_doc',
'_NonCallableMock__set_return_value',
'_NonCallableMock__set_side_effect',
'__call__',
'__class__',
...
Alternatively you can just use vars(my_mock) (instance members) and dir(type(my_mock)) (type members) to bypass the filtering irrespective of mock.FILTER_DIR.
A helper function to create a mock to replace the use of open. It works for open called directly or used as a context manager.
The mock argument is the mock object to configure. If None (the default) then a MagicMock will be created for you, with the API limited to methods or attributes available on standard file handles.
read_data is a string for the read method of the file handle to return. This is an empty string by default.
Using open as a context manager is a great way to ensure your file handles are closed properly and is becoming common:
with open('/some/path', 'w') as f:
f.write('something')
The issue is that even if you mock out the call to open it is the returned object that is used as a context manager (and has __enter__ and __exit__ called).
Mocking context managers with a MagicMock is common enough and fiddly enough that a helper function is useful.
>>> from mock import mock_open
>>> m = mock_open()
>>> with patch('__main__.open', m, create=True):
... with open('foo', 'w') as h:
... h.write('some stuff')
...
>>> m.mock_calls
[call('foo', 'w'),
call().__enter__(),
call().write('some stuff'),
call().__exit__(None, None, None)]
>>> m.assert_called_once_with('foo', 'w')
>>> handle = m()
>>> handle.write.assert_called_once_with('some stuff')
And for reading files:
>>> with patch('__main__.open', mock_open(read_data='bibble'), create=True) as m:
... with open('foo') as h:
... result = h.read()
...
>>> m.assert_called_once_with('foo')
>>> assert result == 'bibble'
Autospeccing is based on the existing spec feature of mock. It limits the api of mocks to the api of an original object (the spec), but it is recursive (implemented lazily) so that attributes of mocks only have the same api as the attributes of the spec. In addition mocked functions / methods have the same call signature as the original so they raise a TypeError if they are called incorrectly.
Before I explain how auto-speccing works, here’s why it is needed.
Mock is a very powerful and flexible object, but it suffers from two flaws when used to mock out objects from a system under test. One of these flaws is specific to the Mock api and the other is a more general problem with using mock objects.
First the problem specific to Mock. Mock has two assert methods that are extremely handy: assert_called_with() and assert_called_once_with().
>>> mock = Mock(name='Thing', return_value=None)
>>> mock(1, 2, 3)
>>> mock.assert_called_once_with(1, 2, 3)
>>> mock(1, 2, 3)
>>> mock.assert_called_once_with(1, 2, 3)
Traceback (most recent call last):
...
AssertionError: Expected to be called once. Called 2 times.
Because mocks auto-create attributes on demand, and allow you to call them with arbitrary arguments, if you misspell one of these assert methods then your assertion is gone:
>>> mock = Mock(name='Thing', return_value=None)
>>> mock(1, 2, 3)
>>> mock.assret_called_once_with(4, 5, 6)
Your tests can pass silently and incorrectly because of the typo.
The second issue is more general to mocking. If you refactor some of your code, rename members and so on, any tests for code that is still using the old api but uses mocks instead of the real objects will still pass. This means your tests can all pass even though your code is broken.
Note that this is another reason why you need integration tests as well as unit tests. Testing everything in isolation is all fine and dandy, but if you don’t test how your units are “wired together” there is still lots of room for bugs that tests might have caught.
mock already provides a feature to help with this, called speccing. If you use a class or instance as the spec for a mock then you can only access attributes on the mock that exist on the real class:
>>> import urllib2
>>> mock = Mock(spec=urllib2.Request)
>>> mock.assret_called_with
Traceback (most recent call last):
...
AttributeError: Mock object has no attribute 'assret_called_with'
The spec only applies to the mock itself, so we still have the same issue with any methods on the mock:
>>> mock.has_data()
<mock.Mock object at 0x...>
>>> mock.has_data.assret_called_with()
Auto-speccing solves this problem. You can either pass autospec=True to patch / patch.object or use the create_autospec function to create a mock with a spec. If you use the autospec=True argument to patch then the object that is being replaced will be used as the spec object. Because the speccing is done “lazily” (the spec is created as attributes on the mock are accessed) you can use it with very complex or deeply nested objects (like modules that import modules that import modules) without a big performance hit.
Here’s an example of it in use:
>>> import urllib2
>>> patcher = patch('__main__.urllib2', autospec=True)
>>> mock_urllib2 = patcher.start()
>>> urllib2 is mock_urllib2
True
>>> urllib2.Request
<MagicMock name='urllib2.Request' spec='Request' id='...'>
You can see that urllib2.Request has a spec. urllib2.Request takes two arguments in the constructor (one of which is self). Here’s what happens if we try to call it incorrectly:
>>> req = urllib2.Request()
Traceback (most recent call last):
...
TypeError: <lambda>() takes at least 2 arguments (1 given)
The spec also applies to instantiated classes (i.e. the return value of specced mocks):
>>> req = urllib2.Request('foo')
>>> req
<NonCallableMagicMock name='urllib2.Request()' spec='Request' id='...'>
Request objects are not callable, so the return value of instantiating our mocked out urllib2.Request is a non-callable mock. With the spec in place any typos in our asserts will raise the correct error:
>>> req.add_header('spam', 'eggs')
<MagicMock name='urllib2.Request().add_header()' id='...'>
>>> req.add_header.assret_called_with
Traceback (most recent call last):
...
AttributeError: Mock object has no attribute 'assret_called_with'
>>> req.add_header.assert_called_with('spam', 'eggs')
In many cases you will just be able to add autospec=True to your existing patch calls and then be protected against bugs due to typos and api changes.
As well as using autospec through patch there is a create_autospec() for creating autospecced mocks directly:
>>> import urllib2
>>> mock_urllib2 = create_autospec(urllib2)
>>> mock_urllib2.Request('foo', 'bar')
<NonCallableMagicMock name='mock.Request()' spec='Request' id='...'>
This isn’t without caveats and limitations however, which is why it is not the default behaviour. In order to know what attributes are available on the spec object, autospec has to introspect (access attributes) the spec. As you traverse attributes on the mock a corresponding traversal of the original object is happening under the hood. If any of your specced objects have properties or descriptors that can trigger code execution then you may not be able to use autospec. On the other hand it is much better to design your objects so that introspection is safe [1].
A more serious problem is that it is common for instance attributes to be created in the __init__ method and not to exist on the class at all. autospec can’t know about any dynamically created attributes and restricts the api to visible attributes.
>>> class Something(object):
... def __init__(self):
... self.a = 33
...
>>> with patch('__main__.Something', autospec=True):
... thing = Something()
... thing.a
...
Traceback (most recent call last):
...
AttributeError: Mock object has no attribute 'a'
There are a few different ways of resolving this problem. The easiest, but not necessarily the least annoying, way is to simply set the required attributes on the mock after creation.
There is a more aggressive version of both spec and autospec that does prevent you setting non-existent attributes. This is useful if you want to ensure your code only sets valid attributes too, but obviously it prevents this particular scenario:
>>> with patch('__main__.Something', autospec=True, spec_set=True):
... thing = Something()
... thing.a = 33
...
Traceback (most recent call last):
...
AttributeError: Mock object has no attribute 'a'
Probably the best way of solving the problem is to add class attributes as default values for instance members initialised in __init__. Note that if you are only setting default attributes in __init__ then providing them via class attributes (shared between instances of course) is faster too. e.g.
class Something(object):
a = 33
This brings up another issue. It is relatively common to provide a default value of None for members that will later be an object of a different type. None would be useless as a spec because it wouldn’t let you access any attributes or methods on it. As None is never going to be useful as a spec, and probably indicates a member that will normally of some other type, autospec doesn’t use a spec for members that are set to None. These will just be ordinary mocks (well - MagicMocks):
>>> class Something(object):
... member = None
...
>>> mock = create_autospec(Something)
>>> mock.member.foo.bar.baz()
<MagicMock name='mock.member.foo.bar.baz()' id='...'>
If modifying your production classes to add defaults isn’t to your liking then there are more options. One of these is simply to use an instance as the spec rather than the class. The other is to create a subclass of the production class and add the defaults to the subclass without affecting the production class. Both of these require you to use an alternative object as the spec. Thankfully patch supports this - you can simply pass the alternative object as the autospec argument:
>>> class Something(object):
... def __init__(self):
... self.a = 33
...
>>> class SomethingForTest(Something):
... a = 33
...
>>> p = patch('__main__.Something', autospec=SomethingForTest)
>>> mock = p.start()
>>> mock.a
<NonCallableMagicMock name='Something.a' spec='int' id='...'>
Note
An additional limitation (currently) with autospec is that unbound methods on mocked classes don’t take an “explicit self” as the first argument - so this usage will fail with autospec.
>>> class Foo(object):
... def foo(self):
... pass
...
>>> Foo.foo(Foo())
>>> MockFoo = create_autospec(Foo)
>>> MockFoo.foo(MockFoo())
Traceback (most recent call last):
...
TypeError: <lambda>() takes exactly 1 argument (2 given)
The reason is that its very hard to tell the difference between functions, unbound methods and staticmethods across Python 2 & 3 and the alternative implementations. This restriction may be fixed in future versions.
| [1] | This only applies to classes or already instantiated objects. Calling a mocked class to create a mock instance does not create a real instance. It is only attribute lookups - along with calls to dir - that are done. A way round this problem would have been to use getattr_static, which can fetch attributes without triggering code execution. Descriptors like classmethod and staticmethod need to be fetched correctly though, so that their signatures can be mocked correctly. |


#001
| Height: | 0.7m |
| Weight: | 6.9kg |
#002
| Height: | 1m |
| Weight: | 13kg |
#003
| Height: | 2m |
| Weight: | 100kg |
#004
| Height: | 0.6m |
| Weight: | 8.5kg |
#005
| Height: | 1.1m |
| Weight: | 19kg |
#006
| Height: | 1.7m |
| Weight: | 90.5kg |
#007
| Height: | 0.5m |
| Weight: | 9kg |
#008
| Height: | 1m |
| Weight: | 22.5kg |
#009
| Height: | 1.6m |
| Weight: | 85.5kg |
#010
| Height: | 0.3m |
| Weight: | 2.9kg |
#011
| Height: | 0.7m |
| Weight: | 9.9kg |
#012
| Height: | 1.1m |
| Weight: | 32kg |
#013
| Height: | 0.3m |
| Weight: | 3.2kg |
#014
| Height: | 0.6m |
| Weight: | 10kg |
#015
| Height: | 1m |
| Weight: | 29.5kg |
#016
| Height: | 0.3m |
| Weight: | 1.8kg |
#017
| Height: | 1.1m |
| Weight: | 30kg |
#018
| Height: | 1.5m |
| Weight: | 39.5kg |
#019
| Height: | 0.3m |
| Weight: | 3.5kg |
#020
| Height: | 0.7m |
| Weight: | 18.5kg |
#021
| Height: | 0.3m |
| Weight: | 2kg |
#022
| Height: | 1.2m |
| Weight: | 38kg |
#023
| Height: | 2m |
| Weight: | 6.9kg |
#024
| Height: | 3.5m |
| Weight: | 65kg |
#025
| Height: | 0.4m |
| Weight: | 6kg |
#026
| Height: | 0.8m |
| Weight: | 30kg |
#027
| Height: | 0.6m |
| Weight: | 12kg |
#028
| Height: | 1m |
| Weight: | 29.5kg |
#029
| Height: | 0.4m |
| Weight: | 7kg |
#030
| Height: | 0.8m |
| Weight: | 20kg |
#031
| Height: | 1.3m |
| Weight: | 60kg |
#032
| Height: | 0.5m |
| Weight: | 9kg |
#033
| Height: | 0.9m |
| Weight: | 19.5kg |
#034
| Height: | 1.4m |
| Weight: | 62kg |
#035
| Height: | 0.6m |
| Weight: | 7.5kg |
#036
| Height: | 1.3m |
| Weight: | 40kg |
#037
| Height: | 0.6m |
| Weight: | 9.9kg |
#038
| Height: | 1.1m |
| Weight: | 19.9kg |
#039
| Height: | 0.5m |
| Weight: | 5.5kg |
#040
| Height: | 1m |
| Weight: | 12kg |
#041
| Height: | 0.8m |
| Weight: | 7.5kg |
#042
| Height: | 1.6m |
| Weight: | 55kg |
#043
| Height: | 0.5m |
| Weight: | 5.4kg |
#044
| Height: | 0.8m |
| Weight: | 8.6kg |
#045
| Height: | 1.2m |
| Weight: | 18.6kg |
#046
| Height: | 0.3m |
| Weight: | 5.4kg |
#047
| Height: | 1m |
| Weight: | 29.5kg |
#048
| Height: | 1m |
| Weight: | 30kg |
#049
| Height: | 1.5m |
| Weight: | 12.5kg |
#050
| Height: | 0.2m |
| Weight: | 0.8kg |
#051
| Height: | 0.7m |
| Weight: | 33.3kg |
#052
| Height: | 0.4m |
| Weight: | 4.2kg |
#053
| Height: | 1m |
| Weight: | 32kg |
#054
| Height: | 0.8m |
| Weight: | 19.6kg |
#055
| Height: | 1.7m |
| Weight: | 76.6kg |
#056
| Height: | 0.5m |
| Weight: | 28kg |
#057
| Height: | 1m |
| Weight: | 32kg |
#058
| Height: | 0.7m |
| Weight: | 19kg |
#059
| Height: | 1.9m |
| Weight: | 155kg |
#060
| Height: | 0.6m |
| Weight: | 12.4kg |
#061
| Height: | 1m |
| Weight: | 20kg |
#062
| Height: | 1.3m |
| Weight: | 54kg |
#063
| Height: | 0.9m |
| Weight: | 19.5kg |
#064
| Height: | 1.3m |
| Weight: | 56.5kg |
#065
| Height: | 1.5m |
| Weight: | 48kg |
#066
| Height: | 0.8m |
| Weight: | 19.5kg |
#067
| Height: | 1.5m |
| Weight: | 70.5kg |
#068
| Height: | 1.6m |
| Weight: | 130kg |
#069
| Height: | 0.7m |
| Weight: | 4kg |
#070
| Height: | 1m |
| Weight: | 6.4kg |
#071
| Height: | 1.7m |
| Weight: | 15.5kg |
#072
| Height: | 0.9m |
| Weight: | 45.5kg |
#073
| Height: | 1.6m |
| Weight: | 55kg |
#074
| Height: | 0.4m |
| Weight: | 20kg |
#075
| Height: | 1m |
| Weight: | 105kg |
#076
| Height: | 1.4m |
| Weight: | 300kg |
#077
| Height: | 1m |
| Weight: | 30kg |
#078
| Height: | 1.7m |
| Weight: | 95kg |
#079
| Height: | 1.2m |
| Weight: | 36kg |
#080
| Height: | 1.6m |
| Weight: | 78.5kg |
#081
| Height: | 0.3m |
| Weight: | 6kg |
#082
| Height: | 1m |
| Weight: | 60kg |
#083
| Height: | 0.8m |
| Weight: | 15kg |
#084
| Height: | 1.4m |
| Weight: | 39.2kg |
#085
| Height: | 1.8m |
| Weight: | 85.2kg |
#086
| Height: | 1.1m |
| Weight: | 90kg |
#087
| Height: | 1.7m |
| Weight: | 120kg |
#088
| Height: | 0.9m |
| Weight: | 30kg |
#089
| Height: | 1.2m |
| Weight: | 30kg |
#090
| Height: | 0.3m |
| Weight: | 4kg |
#091
| Height: | 1.5m |
| Weight: | 132.5kg |
#092
| Height: | 1.3m |
| Weight: | 0.1kg |
#093
| Height: | 1.6m |
| Weight: | 0.1kg |
#094
| Height: | 1.5m |
| Weight: | 40.5kg |
#095
| Height: | 8.8m |
| Weight: | 210kg |
#096
| Height: | 1m |
| Weight: | 32.4kg |
#097
| Height: | 1.6m |
| Weight: | 75.6kg |
#098
| Height: | 0.4m |
| Weight: | 6.5kg |
#099
| Height: | 1.3m |
| Weight: | 60kg |
#100
| Height: | 0.5m |
| Weight: | 10.4kg |
#101
| Height: | 1.2m |
| Weight: | 66.6kg |
#102
| Height: | 0.4m |
| Weight: | 2.5kg |
#103
| Height: | 2m |
| Weight: | 120kg |
#104
| Height: | 0.4m |
| Weight: | 6.5kg |
#105
| Height: | 1m |
| Weight: | 45kg |
#106
| Height: | 1.5m |
| Weight: | 49.8kg |
#107
| Height: | 1.4m |
| Weight: | 50.2kg |
#108
| Height: | 1.2m |
| Weight: | 65.5kg |
#109
| Height: | 0.6m |
| Weight: | 1kg |
#110
| Height: | 1.2m |
| Weight: | 9.5kg |
#111
| Height: | 1m |
| Weight: | 115kg |
#112
| Height: | 1.9m |
| Weight: | 120kg |
#113
| Height: | 1.1m |
| Weight: | 34.6kg |
#114
| Height: | 1m |
| Weight: | 35kg |
#115
| Height: | 2.2m |
| Weight: | 80kg |
#116
| Height: | 0.4m |
| Weight: | 8kg |
#117
| Height: | 1.2m |
| Weight: | 25kg |
#118
| Height: | 0.6m |
| Weight: | 15kg |
#119
| Height: | 1.3m |
| Weight: | 39kg |
#120
| Height: | 0.8m |
| Weight: | 34.5kg |
#121
| Height: | 1.1m |
| Weight: | 80kg |
#122
| Height: | 1.3m |
| Weight: | 54.5kg |
#123
| Height: | 1.5m |
| Weight: | 56kg |
#124
| Height: | 1.4m |
| Weight: | 40.6kg |
#125
| Height: | 1.1m |
| Weight: | 30kg |
#126
| Height: | 1.3m |
| Weight: | 44.5kg |
#127
| Height: | 1.5m |
| Weight: | 55kg |
#128
| Height: | 1.4m |
| Weight: | 88.4kg |
#129
| Height: | 0.9m |
| Weight: | 10kg |
#130
| Height: | 6.5m |
| Weight: | 235kg |
#131
| Height: | 2.5m |
| Weight: | 220kg |
#132
| Height: | 0.3m |
| Weight: | 4kg |
#133
| Height: | 0.3m |
| Weight: | 6.5kg |
#134
| Height: | 1m |
| Weight: | 29kg |
#135
| Height: | 0.8m |
| Weight: | 24.5kg |
#136
| Height: | 0.9m |
| Weight: | 25kg |
#137
| Height: | 0.8m |
| Weight: | 36.5kg |
#138
| Height: | 0.4m |
| Weight: | 7.5kg |
#139
| Height: | 1m |
| Weight: | 35kg |
#140
| Height: | 0.5m |
| Weight: | 11.5kg |
#141
| Height: | 1.3m |
| Weight: | 40.5kg |
#142
| Height: | 1.8m |
| Weight: | 59kg |
#143
| Height: | 2.1m |
| Weight: | 460kg |
#144
| Height: | 1.7m |
| Weight: | 55.4kg |
#145
| Height: | 1.6m |
| Weight: | 52.6kg |
#146
| Height: | 2m |
| Weight: | 60kg |
#147
| Height: | 1.8m |
| Weight: | 3.3kg |
#148
| Height: | 4m |
| Weight: | 16.5kg |
#149
| Height: | 2.2m |
| Weight: | 210kg |
#150
| Height: | 2m |
| Weight: | 122kg |
#151
| Height: | 0.4m |
| Weight: | 4kg |
#152
| Height: | 0.9m |
| Weight: | 6.4kg |
#153
| Height: | 1.2m |
| Weight: | 15.8kg |
#154
| Height: | 1.8m |
| Weight: | 100.5kg |
#155
| Height: | 0.5m |
| Weight: | 7.9kg |
#156
| Height: | 0.9m |
| Weight: | 19kg |
#157
| Height: | 1.7m |
| Weight: | 79.5kg |
#158
| Height: | 0.6m |
| Weight: | 9.5kg |
#159
| Height: | 1.1m |
| Weight: | 25kg |
#160
| Height: | 2.3m |
| Weight: | 88.8kg |
#161
| Height: | 0.8m |
| Weight: | 6kg |
#162
| Height: | 1.8m |
| Weight: | 32.5kg |
#163
| Height: | 0.7m |
| Weight: | 21.2kg |
#164
| Height: | 1.6m |
| Weight: | 40.8kg |
#165
| Height: | 1m |
| Weight: | 10.8kg |
#166
| Height: | 1.4m |
| Weight: | 35.6kg |
#167
| Height: | 0.5m |
| Weight: | 8.5kg |
#168
| Height: | 1.1m |
| Weight: | 33.5kg |
#169
| Height: | 1.8m |
| Weight: | 75kg |
#170
| Height: | 0.5m |
| Weight: | 12kg |
#171
| Height: | 1.2m |
| Weight: | 22.5kg |
#172
| Height: | 0.3m |
| Weight: | 2kg |
#173
| Height: | 0.3m |
| Weight: | 3kg |
#174
| Height: | 0.3m |
| Weight: | 1kg |
#175
| Height: | 0.3m |
| Weight: | 1.5kg |
#176
| Height: | 0.6m |
| Weight: | 3.2kg |
#177
| Height: | 0.2m |
| Weight: | 2kg |
#178
| Height: | 1.5m |
| Weight: | 15kg |
#179
| Height: | 0.6m |
| Weight: | 7.8kg |
#180
| Height: | 0.8m |
| Weight: | 13.3kg |
#181
| Height: | 1.4m |
| Weight: | 61.5kg |
#182
| Height: | 0.4m |
| Weight: | 5.8kg |
#183
| Height: | 0.4m |
| Weight: | 8.5kg |
#184
| Height: | 0.8m |
| Weight: | 28.5kg |
#185
| Height: | 1.2m |
| Weight: | 38kg |
#186
| Height: | 1.1m |
| Weight: | 33.9kg |
#187
| Height: | 0.4m |
| Weight: | 0.5kg |
#188
| Height: | 0.6m |
| Weight: | 1kg |
#189
| Height: | 0.8m |
| Weight: | 3kg |
#190
| Height: | 0.8m |
| Weight: | 11.5kg |
#191
| Height: | 0.3m |
| Weight: | 1.8kg |
#192
| Height: | 0.8m |
| Weight: | 8.5kg |
#193
| Height: | 1.2m |
| Weight: | 38kg |
#194
| Height: | 0.4m |
| Weight: | 8.5kg |
#195
| Height: | 1.4m |
| Weight: | 75kg |
#196
| Height: | 0.9m |
| Weight: | 26.5kg |
#197
| Height: | 1m |
| Weight: | 27kg |
#198
| Height: | 0.5m |
| Weight: | 2.1kg |
#199
| Height: | 2m |
| Weight: | 79.5kg |
#200
| Height: | 0.7m |
| Weight: | 1kg |
#201
| Height: | 0.5m |
| Weight: | 5kg |
#202
| Height: | 1.3m |
| Weight: | 28.5kg |
#203
| Height: | 1.5m |
| Weight: | 41.5kg |
#204
| Height: | 0.6m |
| Weight: | 7.2kg |
#205
| Height: | 1.2m |
| Weight: | 125.8kg |
#206
| Height: | 1.5m |
| Weight: | 14kg |
#207
| Height: | 1.1m |
| Weight: | 64.8kg |
#208
| Height: | 9.2m |
| Weight: | 400kg |
#209
| Height: | 0.6m |
| Weight: | 7.8kg |
#210
| Height: | 1.4m |
| Weight: | 48.7kg |
#211
| Height: | 0.5m |
| Weight: | 3.9kg |
#212
| Height: | 1.8m |
| Weight: | 118kg |
#213
| Height: | 0.6m |
| Weight: | 20.5kg |
#214
| Height: | 1.5m |
| Weight: | 54kg |
#215
| Height: | 0.9m |
| Weight: | 28kg |
#216
| Height: | 0.6m |
| Weight: | 8.8kg |
#217
| Height: | 1.8m |
| Weight: | 125.8kg |
#218
| Height: | 0.7m |
| Weight: | 35kg |
#219
| Height: | 0.8m |
| Weight: | 55kg |
#220
| Height: | 0.4m |
| Weight: | 6.5kg |
#221
| Height: | 1.1m |
| Weight: | 55.8kg |
#222
| Height: | 0.6m |
| Weight: | 5kg |
#223
| Height: | 0.6m |
| Weight: | 12kg |
#224
| Height: | 0.9m |
| Weight: | 28.5kg |
#225
| Height: | 0.9m |
| Weight: | 16kg |
#226
| Height: | 2.1m |
| Weight: | 220kg |
#227
| Height: | 1.7m |
| Weight: | 50.5kg |
#228
| Height: | 0.6m |
| Weight: | 10.8kg |
#229
| Height: | 1.4m |
| Weight: | 35kg |
#230
| Height: | 1.8m |
| Weight: | 152kg |
#231
| Height: | 0.5m |
| Weight: | 33.5kg |
#232
| Height: | 1.1m |
| Weight: | 120kg |
#233
| Height: | 0.6m |
| Weight: | 32.5kg |
#234
| Height: | 1.4m |
| Weight: | 71.2kg |
#235
| Height: | 1.2m |
| Weight: | 58kg |
#236
| Height: | 0.7m |
| Weight: | 21kg |
#237
| Height: | 1.4m |
| Weight: | 48kg |
#238
| Height: | 0.4m |
| Weight: | 6kg |
#239
| Height: | 0.6m |
| Weight: | 23.5kg |
#240
| Height: | 0.7m |
| Weight: | 21.4kg |
#241
| Height: | 1.2m |
| Weight: | 75.5kg |
#242
| Height: | 1.5m |
| Weight: | 46.8kg |
#243
| Height: | 1.9m |
| Weight: | 178kg |
#244
| Height: | 2.1m |
| Weight: | 198kg |
#245
| Height: | 2m |
| Weight: | 187kg |
#246
| Height: | 0.6m |
| Weight: | 72kg |
#247
| Height: | 1.2m |
| Weight: | 152kg |
#248
| Height: | 2m |
| Weight: | 202kg |
#249
| Height: | 5.2m |
| Weight: | 216kg |
#250
| Height: | 3.8m |
| Weight: | 199kg |
#251
| Height: | 0.6m |
| Weight: | 5kg |


View Cart
News
Blog
Email Us
Please fix these errors !
Mail sent successfully !
 RUSSELL’S
GOURMET HORSE COOKIES
CALL US:<PHONE_NUMBER>
6338 N. New Braunfels, #146, San Antonio, TX 78209


decoder
0b00000000
clear
back
config
Significant bin byte value threshold:
Output after consecutive duplicate states:


A College Dropped-out, a Full-Stack Developer and an Aspiring Entrepreneur.
I work on Python and JavaScript, currently exploring React and Redux.


Dear
Welcome to the ATM
This is what you can see, after you are logged in
WITHDRAW
Withdraw
DEPOSIT
Deposit
LOGOUT
Logout


Amazon S3 bucket names - be very careful
As I am doing bunch of AWS related work, I create multiple buckets for testing purposes. Today, I created a bucket and by mistake chose the wrong region. Region matters as Paperclip generates the attachment url based on s3_host_name. If you access the S3 item with a different starting hostname, Amazon will give you redirection notice.
After realising my mistake, I dropped the bucket and tried to create another one with the same name (using the correct region) and I get:
A conflicting conditional operation is currently in progress against this resource. Please try again.
The official reply from Amazon is:
I strongly recommend against deleting a bucket that you want to keep. There’s never any guarantee that you will be able to create a new bucket with the same bucket name.
(taken from https://forums.aws.amazon.com/thread.jspa?threadID=37532)
Luckily, this was bucket which I was going to use for testing so the name really didnt matter but if it was something for production, things could have gotten hairy.


No credit card associated with your account.
{{account.currency}}
{{accountInfo.bank_name}} ****{{accountInfo.number}} ({{accountInfo.currency | uppercase}})
No bank account associated with your account


{% with ticket_type.ticket_pool.convention as convention %}
| Ticket Holder | {{ ticket.get_full_name }} {{ ticket.email }} |
|---|---|
| Event | {{ convention }} |
| Location | {{ convention.location }} |
| Time | {{ convention.start_time|date }} to {{ convention.end_time|date }} |
{{ ticket_type.get_price_display }}


By using OABuilder along with the OA libraries, applications can be created in a fraction of the time that it usually takes for building software, with advanced features not found in most development tools.
OA includes the functionality needed for building commercial software - including rich UI components, reporting components, advanced client/server and distributed real-time synchronization, data automation for zero admin datasource access, intergration with other systems, etc.
Model / View / Control (MVC)
MVC is a well known design pattern that encourages the separation of responsibility within an application.
Along with other design patterns like Delegates and Controllers, applications can be organized in a way
that makes them consistent, and easy to manage and grow.
Observability - and the OA "Reactive Model"
The power with OA is in the fact that it has a "reactive model", where the model objects are observable.
This is a unique feature to OA, that can be ported to any other computer language, to ultimately
create language independent systems. This type of model allows objects to work together, similar to a curcuit board.
This is used in areas like UI binding, relational to object automation, distributed synchronization, etc.
The Model
A Model is a representation of the data that is needed within a computer program.
With OABuilder, you define this data using as much detail as possible, which can then
be used for code generation and documentation.
What's in a Model A model is organized into Objects, where an each object has the following:
Some history
OABuilder started out in 1999 as a tool to help define object
and database models and has evolved into a tool that documents
and generates the core business components within an application.
Through the years, we have expanded and automatated much of the application
development process, including the following:
The strength behind OABuilder is how it puts the applications together, and the functionality that a projects requirements. The OA library allows it to be a used for creating tools, frameworks and reusable components.
OABuilder was created using these classes and framework. The OA packages can be found under "OA Java Packages" on the www.viaoa.com website.


Tests
Test frameworks
.Net has a number of testing frameworks. The major ones:
- NUnit, which has been around since .net 1, originally ported from Java.
- MsTest (Visual Studio test tools) - since Visual Studio 2005/.net 2, the most common.
- XUnit - since 2007, including .net 3.5 and widely used inside Microsoft.
MsTest is the most used. While it may not be the most modern (the core framework is basically unchanged since 2005), it is reliable and easy. Instead of adding richer APIs like NUnit, Microsoft invested into little used things like asp.net unit tests, Coded UI tests, private method accessors and fakes. Both NUnit and XUnit have more "modern" features and are important in open-source, but less so within large companies.
Since Visual Studio 2012, Visual Studio has test adapters, so can easily run NUnit, XUnit and others (before you used to need special runners like Resharper or TestDriven). Originally the adapters were Visual Studio extensions (vsix); now nuget packages are prefered (xunit.runner.visualstudio or NUnit3TestAdapter added to one test project; it automatically applies to the entire solution).
The popularity of Behavior Driven Development has led to some "specification" frameworks like Ruby's Cucumber with its Gherkin language (Scenario/Given/When/Then). Some, like Specflow, are intended used for acceptance tests while retaining *unit for unit tests. More common is simply to name the tests as "Given_x_When_y_Then_z" (with underscores or just capitalization).
- SpecFlow
- Machine.Specifications (MSpec)
- There's a .net version of Fitnesse (integration decision tables defined in html/wiki): FitSharp
For web UI testing, WatIN has been around for ages and is excellent; otherwise use Selenium or standard javascript test tools.
Assertions
You can also use separate "assertion libraries" like Should, Shouldly and FluentAssertions. These fluent styles, like string.Should().Be.Equal("x"), can be quite verbose.
Or you can simply use Assert.AreEqual/ Assert.IsNull / Assert.IsTrue for 95% of tests.
NUnit vs MsTest vs XUnit
For simple unit tests, there's not much difference. For comparison
- NUnit uses [TestFixture] and [Test] attributes.
- MsTest uses [TestClass] and [TestMethod] attributes.
- XUnit uses no class marker, [Fact] attribute or [Theory] (in xunit.extensions for v1 only)
XUnit v2 runs tests in parallel. To run sequentially: [assembly: CollectionBehavior(DisableTestParallelization = true)]
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NUnit.Framework;
using Xunit;
namespace UnitTestProject1
{
//XUnit no class attribute
[TestClass] //MsTest
[TestFixture] //NUnit
public class UnitTest1
{
[TestMethod] //MsTest
[Test] //NUnit
[Fact] //XUnit
public void TestMethod1()
{
var result = 1 + 2;
//assert equals
Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(3, result, "AreEqual optional message");
NUnit.Framework.Assert.AreEqual(3, result, "AreEqual optional message");
NUnit.Framework.Assert.That(result, Is.EqualTo(3)); //alternative form
Xunit.Assert.Equal(3, result); //Equal, not AreEqual, no message
//type
Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsInstanceOfType(3, typeof(int));
NUnit.Framework.Assert.IsInstanceOf(typeof(int), 3); //note different order
NUnit.Framework.Assert.IsInstanceOf<int>(3); //generic version
NUnit.Framework.Assert.That(3, Is.TypeOf<int>()); //constraint version
Xunit.Assert.IsType<int>(3);
//inconclusive
if (DateTime.Now.DayOfWeek == DayOfWeek.Monday)
Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Inconclusive("May not work on Mondays");
if (DateTime.Now.DayOfWeek == DayOfWeek.Tuesday)
NUnit.Framework.Assert.Inconclusive("May not work on Tuesdays");
//XUnit has no inconclusive
NUnit.Framework.Assert.Ignore("Causes it to be ignored");
}
}
}
Integration tests may need to return Inconclusive rather than Passed or Failed (environmental dependencies aren't present). NUnit and MsTest support Inconclusive, but XUnit doesn't.
Exceptions
MsTest and NUnit have the [ExpectedException(typeof(x))] attribute.
NUnit and XUnit have Assert.Throws<x>
Sometimes a simple try/catch with Assert.Fail() is clearer.
[TestMethod, Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedException(typeof(ArgumentOutOfRangeException))] //MsTest
[Test, NUnit.Framework.ExpectedException(typeof(ArgumentOutOfRangeException))] //NUnit
[Fact] //XUnit has no ExpectedException (see body)
public void ExceptionTest()
{
//throw new InvalidOperationException();
NUnit.Framework.Assert.Throws<ArgumentOutOfRangeException>(() => new DateTime(-1));
Xunit.Assert.Throws<ArgumentOutOfRangeException>(() => new DateTime(-1));
}
Ignoring tests
Removing the Test/TestMethod/Fact attribute is easiest, but sometimes you want to explicitly ignore.
[Microsoft.VisualStudio.TestTools.UnitTesting.Ignore] //MsTest
[NUnit.Framework.Ignore] //NUnit
[Fact(Skip = "Ignore it")] //XUnit
public void BrokenTest()
{
//don't run this
}
See more about the test lifecycle events and parametrized Tests


--external-endpoints
flag.
Endpoint management via the UI is disabled.
You can still manage endpoint access.
| Name | URL | |||
|---|---|---|---|---|
| {{ endpoint.Name }} | {{ endpoint.URL | stripprotocol }} | Edit Manage access | ||
| Loading... | ||||
| No endpoints available. |


Since our establishment, quality has always been one of the foremost concerns of our organization. Our commitment to deliver unparalleled Mild Steel Products has earned us a distinct position in the industry. We have appointed quality experts, who make sure that all the quality control measures are strictly followed at each production stage. These experts ensure that the raw material are procured from trusted vendors of the industry.
We are equipped with testing laboratory and scientific equipment for finished products as well as raw materials Honest alloys pvt ltd is approved by BUREA OF INDIAN STANDARDS (ISI)
Achieving utmost satisfaction of our valuable clients is the main objective of our organization.
To attain the same, we have directed all our endeavors towards meeting each and every requirement of our clients. We ensure that our clients get a flawless product range of mild steel products for which we check it stringently. Further, in order to meet specific needs of our clients, we also offer them the facility of customization.
We have set up an efficient distribution network that helps us supply our products to clients within the given time frame.


{% extends "layout.html" %} {% block page_title %} Confirmation page example {% endblock %} {% block content %} File sent We've sent confirmation to<EMAIL_ADDRESS>What happens next? Copy will depend on the file type. Or you may want to: Go back to home View files uploaded {% endblock %}
Copy will depend on the file type.
Or you may want to:
Go back to home
View files uploaded


|
|
|
ZeroD Srl |
| 2014 - 2019 | Micro ERP/CRM IOT facility |
Docuware connector (webapp) |
RaspberryPI, ESP8266, C#, KnockoutJS, Bootstrap, Razor/ASP.NET, Sqlite, MySQL, Python, Git |
||
| 2007 - 2014 | SAP Connector (middleware) |
Tavolinux (hospitality) |
Windows CE/NT, Linux, PDA, POS, C#, C++, MSSQL, PostgreSQL, SVN, dotNET |
||
|
|
| 2014 - 2019 | |||||
| Micro ERP/CRM IOT facility |
Docuware connector (webapp) |
RaspberryPI, ESP8266, C#, KnockoutJS, Bootstrap, Razor/ASP.NET, Sqlite, MySQL, Python, Git |
|||
| 2007 - 2014 | |||||
| SAP Connector (middleware) |
Tavolinux (hospitality) |
Windows CE/NT, Linux, PDA, POS, C#, C++, MSSQL, PostgreSQL, SVN, dotNET |
|||
|
|
| 2014 - 2019 | consultant, full-stack developer, technical support | ZeroD Srl, SOL Group Spa, Alpac Srl |
| 2007 - 2014 | Project Manager, Team Leader, Senior Dev., ETL, Data Analisys&Integrator | Seltris srl: PDA, Motorola, MS-Visio/Project/Word, SharePoint, MSSQL, VB.NET |
| 1998 - 2000 | Junior ICT Manager, System Engineer | Copan Italia Spa: HP Proliant, Zyxel, MSAccess |
| 1986 - 1998 | Video Game dev., Technician, PLC dev., technical teacher in high school | CompaQ, 3com, Windows NT, Novell, Nixdorf, Zetafax, Intermec, Clipper |
|
|
| 2014 - 2019 | ||
| Roles | consultant, full-stack developer, technical support | |
| Companies, HW, SW | ZeroD Srl, SOL Group Spa, Alpac Srl | |
| 2007 - 2014 | ||
| Roles | Project Manager, Team Leader, Senior Dev., ETL, Data Analisys&Integrator | |
| Companies, HW, SW | Seltris srl: PDA, Motorola, MS-Visio/Project/Word, SharePoint, MSSQL, VB.NET | |
| 1998 - 2000 | ||
| Roles | Junior ICT Manager, System Engineer | |
| Companies, HW, SW | Copan Italia Spa: HP Proliant, Zyxel, MSAccess | |
| 1986 - 1998 | ||
| Roles | Video Game dev., Technician, PLC dev., technical teacher in high school | |
| Companies, HW, SW | CompaQ, 3com, Windows NT, Novell, Nixdorf, Zetafax, Intermec, Clipper | |
|
|


Windows 10 x64 (18362.449)
_KPROCESS_STATE
ProcessInMemory = 0n0
ProcessOutOfMemory = 0n1
ProcessInTransition = 0n2
ProcessOutTransition = 0n3
ProcessInSwap = 0n4
ProcessOutSwap = 0n5
ProcessRetryOutSwap = 0n6
ProcessAllSwapStates = 0n7


Scientific data types package. The Point types have been superceded by the classes in package ucar.nc2.ft.
These are interfaces that define access to specialized "scientific datatype" datasets. There are three types of interfaces:
A TypedDataset and TypedVariable are lightweight abstractions of NetcdfDataset and Variable, which allows implementations that are not necessarily based on NetcdfDataset objects.


You might have noticed a bit of LaTeX in the descriptions. This is rendered due to a special package (KaTeX) which is imported in the main file. It is not only possible to include LaTeX in the description text but also in the title of sliders, or legends and labels of plots. When updating the Bokeh version, you might have to adapt the custom LaTeX implementation in the shared folder. See the Wiki for more details.
Last but not least one of the most important parts to actually receive output and being able to look at the figures in your favorite browser lies in the command curdoc().add_root(), where you can define the position of your objects (figures, sliders, buttons, etc.) by using rows and columns notation. Without this last step - opening the window to the outside world - all your programming and ideas would just stay imaginary.
We hope that we covered the most important underlying structures of the apps presented here and that the gained basis for programming in Bokeh will lead to magnificent creations.
Copy the Template App for a quick start and have a look at Bokehs references for other possible models that could not be covered here.
Happy coding!


Square's acclaimed role-playing series makes its PlayStation 2 debut with Final Fantasy X. Players assume the role of Tidus, an athletic teenager who witnessed the destruction of his home city by an evil entity named Sin. While his life was spared, Tidus' contact with Sin opened a portal through time. Some 1,000 years have passed since the encounter, and Tidus now finds himself in a strange land with unfamiliar faces. As Tidus struggles to find a way back home, he will meet a variety of characters, including Yuna, a girl faced with the daunting task of defeating Sin.
Final Fantasy X features a number of new features over previous installments. Backgrounds and characters are rendered entirely in 3D, with real-time facial expressions visible on each character. When characters are surprised, for example, they will raise their eyebrows or open their mouths in astonishment. For the first time in the series, dialogue has been recorded using professional voice actors. The U.S. version features voices in English, with optional English subtitles selectable from the menu screen.
Refinements to the combat system include character-specific skills and abilities as well as the option to swap characters at any time during battle. While previous games involved playing with only three characters at a time, players can now manage a party by selecting three to fight and making substitutions as the battle wears on. This is possible through a turn-based system, allowing players to make decisions before initiating a move. As in the earlier games, players can use items, perform special attacks, cast magic, or summon powerful creatures to assist them.
A popular mainstay in the Final Fantasy series is the inclusion of mini-games. Final Fantasy X features Chocobo Riding, where players guide the bird-like chocobos through a series of training courses, and Blitzball, an underwater sporting event. Blitzball pits two teams of four players against each other as they attempt to score points by throwing a ball past the goalie. The action is primarily turn-based, where ability points determine the accuracy of passes, shots, and tackles. By competing in tournaments, players can earn experience and prizes for their characters.
Features:
* First voice-acted Final Fantasy game
* Real-time facial expressions
* Newly designed battle system
* Fully 3D environments
An international version of the game was released in Japan as Final Fantasy X International in January 2002, and in PAL regions under its original title. It features content not available in the original NTSC releases, including battles with "Dark" versions of the game's aeons and an airship fight with the superboss "Penance".[9] The Japanese release of Final Fantasy X International also includes "Eternal Calm", a 14-minute video clip bridging the story of Final Fantasy X with that of its sequel, Final Fantasy X-2.
MANUFACTURER'S DESCRIPTION:
Immerse yourself in a world that has been devastated by a mysterious force known only as "Sin". Human existence teeters on the brink of extinction when Sin willfully destroys cities and lives. Final Fantasy X makes history by being the first Final Fantasy installment to integrate voiceovers into a majority of the story scenes. Along with a special effects system known as the "Facial Motion System," this feature breathes new life into the characters, story, and the Final Fantasy series itself.
- The first Final Fantasy game for the PS2.
- The first in the history of the Final Fantasy installments to integrate voiceovers into a majority of the story scenes.
- Features a special effects system known as the "Facial Motion System," which adds subtle facial expressions to characters in real time.
- Fully 3D environments that seamlessly integrate real-time movement with boss battles, allowing players to wander an area and engage in fights on the same screen.
- Newly designed battle system that integrates traditional Final Fantasy battle elements with a unique Sphere Grid character development system.
- Life-like, high-polygon, motion-captured characters designed by renowned artist Tetsuya Nomura.
- Enchanting musical score, written by famed composer Nobuo Uematsu, with tracks featuring a distinct Japanese Okinawan flavor.
- All new side quests and minigames, such as the underwater sport of blitzball and a monster arena.
FEATURES:
- Third person perspective.
- 3D graphics
- Cartoon graphics
- SCI-Fi, Futuristic & Fantasy themes.
|
|


U2 – “Ahimsa” (Feat. A. R. Rahman)
by James RettigU2 have released a new song called “Ahimsa.” It’s a collaboration with the Indian musician A. R. Rahman. The track is named after ahimsa, a doctrine commonly translated as “do no harm” and a respect for all living things.
It’s the band’s first material since 2017’s Songs Of Experience. They’ve spent most of the last two years celebrating the 30th anniversary of The Joshua Tree with an extensive tour — they’re currently in the middle of a run of shows through Australia and Asia.
Listen below.
“Ahimsa” is out now.


Change Log
Full Changelog
Closed issues:
- Autoprefixer missing -webkit prefixes #826
v2.6.2 (2016–06–09)
Full Changelog
Closed issues:
- Advice on Excessively Large File Size? #831
- no styles #830
- OffCanvas menu -webkit- prefixes in Safari #829
- npm install error #827
- Responsive Menu not toggling #825
- Mobile Menu Accordion Menu - Expand “active” submenu parent automatically #822
- Google Fonts are being added automatically #818
- NPM run production not working with node.js 6.1.0 (Solved) #815
- Extra Question For Issues #811
- <?php Foundationpress_top_bar_r(); ?> not showing any pages #810
- npm install error #809
- php CodeSniffer not working - Windows 10 #808
- path.js throw error, Path must be a string. Received ’ + inspect(path); #807
- Logged in to my WP install via Browser Sync #806
- Foundationpress installation via npm failed #805
- Working with an “old” Foundationpress #800
- Every little project requires 70,000 files? #797
- Error trying to compile foundation.scss #796
- can’t upload on external save via SFTP #794
- top-bar fixed #787
- Strange character ( ` ) appearing in site text - this theme only #782
- Missing modules when running npm run build or npm install #780
- BwoserSync not working on older project after installing new project #779
- about template page-sidebar-right #778
- Component loading issue when building SCSS. #776
- Significance of this return after running “watch”? #775
- More info on Motion UI #772
- Install Foundationpress twice in one themes directory? #769
- Sass Mixins with Foundationpress #765
- errors in sitemap.xml due to functions.php #753
- Adding a second menu to mobile nav? #728
- Fonts issues. #703
- Noob question regarding fonts and how to set them up #702
- Push changes to server with Git, but with whole assets? #700
- Reveal does not display properly on a page with right sidebar layout #696
- Off canvas menu won’t open/reveal left #682
- SCSS Not Compiling Because #676
- PostInstall issues #672
- How to make a sticky nav? #653
Merged pull requests:
v2.6.1 (2016–03–10)
Full Changelog
Fixed bugs:
- Responsive images WP 4.4 #607
- Stripping Image Classes #532
Closed issues:
- Essential Grid Plugin on Mobile #578
- Mobile Menu doesn’t load #485
Merged pull requests:
v2.6.0 (2016–03–10)
Full Changelog
Implemented enhancements:
Closed issues:
- bower components _global overriding scss/global/_setting #762
- Fresh install changes to _settings.scss not cascading consistently #760
- foundation.css file throw an 404 error on childthemes #758
- Homepage replicate across all pages #755
- Error messages always displayed when using Abide validation #719
Merged pull requests:
v2.5.1 (2016–03–08)
Full Changelog
Fixed bugs:
- Dropdown Menu Arrows #752
Closed issues:
- Foundationpress Grid #751
- Git Ignores Files Inside Foundationpress Theme Folder. #750
- gulp file errors, FP 2.5, npm run watch, Windows 7 x64 #748
- Npm installation stop working… #744
- Flexbox grid? #741
- Incorrect GCC #739
- Can’t add or style elements of main content #736
- adding the UNCSS task in my gulpfile.js #727
- Offcanvas menu not working #720
- jquery.js conflict with popular wordpress plugins #645
Merged pull requests:
v2.5.0 (2016–03–02)
Full Changelog
Closed issues:
- Block Grid Not Working #738
- Clean Install Problem #737
- npm WARN package.json<EMAIL_ADDRESS>No license field. #734
- WP Search, show excerpts in search #732
- anyone know what causes error:file to import not found or unreadable #731
- Adding logo in center of Nav Bar #730
- Using foundation columns in Wordpress visual editor? #725
- libsass binding was not found - error #724
- SASS/node error working with “old” FP 1.x projects alongside FP 2.x #722
- how to style wordpress footer widgets #706
- Top bar menu wonky with FP2.x #704
Merged pull requests:
v2.4.0 (2016–02–11)
Full Changelog
Fixed bugs:
- Duplicate jQuery #669
- Menu not appearing for off-canvas on non mobile sizes #650
- Second-level submenus don’t fly out #634
Closed issues:
- Blog Title position in Top Bar #721
- New menu #716
- Reveal Modal #712
- This is not full version of Foundationpress, when I installed it then I don’t see any style from foundation.css. Where is css and scss folder and other… #711
- Off canvas mobile menu issue #709
- Misc changes to consider #708
- Top Bar CSS differs on newly installed Foundationpress…. #705
- npm run package do not minify js #695
- Where have all the Sass variables gone in Foundation 6? #693
- Using Foundationpress in production on EC2 #692
- Foundationpress install error #691
- Run Watch/Build Issues #690
- sorry for the dumb question, but how do you update #689
- media breakpoints #688
- Missing semicolon in SCSS produces a segmentation fault. #686
- library/navigation.php #685
- Can’t find topbar breakpoint in settings.scss #684
- Old project with grunt: not able to make some change #683
- gulpfile javascript build #680
- SASS COMPILING ERROR #679
- Plans for using SASS? #678
- Default Topbar #677
- Mobile Menu not working correctly. #675
- off-canvas positioning #671
- SCSS Documentation #652
- woocommerce template overrides not working #651
- Mobile Menu Customizer #494
Merged pull requests:
v2.3.0 (2015–12–31)
Full Changelog
Implemented enhancements:
- Fully-functional and easy-to-use Sticky Sidebar available #571
- Adding FlexVideo automatically? Any idea? #500
Fixed bugs:
- Bug on Off-canvas markup (parts/mobile-off-canvas.php) #661
- validator errors #614
- Sticky top bar causing page to spazz out #577
- img_unautop is greedy #95
Closed issues:
- JSHint needs to be installed with gulp-jshint #664
- No CSS in Child Theme #663
- Issues with dependencies #660
- populate composer.json #659
- Sass error at watch command #655
- gulp error notification #654
- Exit status 8 while running npm install #649
- How to commit WordPress database to Github or Bitbucket? #648
- How to change topbar height? #647
- Small issue with offcanvas menu #646
- New WPCS rule (ValidVariableName.NotSnakeCase) causing build error #643
- Having trouble committing project to BitBucket! #638
- Prepping theme for deployment #636
- Drilldown menu not working? #635
- Initialize Desktop Navigation Later #631
- Mobile Menu, all but first child #627
- Error: File to import not found or unreadable #624
- Can’t get stylesheets to build #622
- archive.php check if sidebar exist #517
Merged pull requests:
v2.2.0 (2015–12–12)
Full Changelog
Implemented enhancements:
- Added Size Class Back Into Image Tag Within Content Body #574 (josh-rathke)
Fixed bugs:
- Font “reloading” after page load #604
- Problems Mobile and Top Bar in FP6 #598
- console error “typekit” #590
Closed issues:
- Less settings than before? #602
- npm WARN cannot run in wd / bower EACCES: permission denied, mkdir #596
- npm ERR! Exit status 8 #595
- npm ERR! argv “node” “/usr/bin/npm” “install” #594
- gulp error #589
- Title and favicon #576
- Question on Gruntfile.js Line 200 #575
- npm run watch taking a long time #573
- BrowserSync not loading styles on mobile and ipad #572
- Failed to load resource on subdirectory host www.example.com/subdir #570
Merged pull requests:
v2.1.0 (2015–12–07)
Full Changelog
Closed issues:
- [2.0.0] not seeing offgrid in showcase #585
Merged pull requests:
v2.0.0 (2015–12–05)
Full Changelog
Fixed bugs:
- Gruntfile and fontawesome #568
Closed issues:
- Initial Build Erroring #558
- Trouble with the installation process #547
Merged pull requests:
v1.7.2 (2015–11–20)
Full Changelog
Fixed bugs:
- Protocol Relative URL not compatible with CDN Rewrites #546
Merged pull requests:
v1.7.1 (2015–11–20)
Full Changelog
Implemented enhancements:
- Let’s use autoprefixer for prefixing #453
Fixed bugs:
- 1px to much page height (also in demo) #557
Closed issues:
- Walker_Nav_Menu & Top_Bar_Walker class #555
- Major struggles with npm / grunt / node-sass when working with old and new FP projects simultaneously #553
- WooCommerce Login Issue #551
- bower install not running #550
- Different page layouts #548
Merged pull requests:
v1.7.0 (2015–11–07)
Full Changelog
Fixed bugs:
- npm run package is taking very long time #538
Closed issues:
- Home page button highlighted as active #537
- Sourcemaps in chrome not correct #521
- Cannot Clone the repository and install with npm #510
- npm ERR! code ELIFECYCLE / Failed at postinstall script #501
Merged pull requests:
v1.6.0 (2015–11–01)
Full Changelog
Closed issues:
- npm commands = compilation errors #530
- Uncaught TypeError: $ is not a function #526
- NPM recommended version? #525
- Missing CSS/JS files when installed on Wordpress version 4.3.1 #523
- Demo seems broken on IE9 #519
- Grid not working perfectly… #516
- Npm package #514
- npm install errors #512
- Theme not reading css #511
- Button height problem #506
- npm install completion blocked by Windows Firewall #495
- Custom Grids? #486
Merged pull requests:
v1.5.1 (2015–10–10)
Full Changelog
Implemented enhancements:
Fixed bugs:
- Foundationpress will not install with Node.js version 4.0 #461
Closed issues:
- npm run package takes long time an failed #497
- Installed w/ No Issues, but Styling/Layout Not Showing #493
- Installation issues? #481
- posts per page function not working on archive #477
- Incompability issues with Node v.4.x.x #475
- NPM build error #468
Merged pull requests:
v1.5.0 (2015–09–23)
Full Changelog
Fixed bugs:
- Off-canvas menu defaults not set properly #447
- Woocommerce styles overwriting Foundations #263
Closed issues:
- Clearly state what files are needed on server #472
- Search for pages #469
- Error on npm install #465
- npm run watch fails #460
- Files missing from Theme folder? #459
Merged pull requests:
v1.4.0 (2015–09–07)
Full Changelog
Implemented enhancements:
- Isolating frontend dependencies. #396
Fixed bugs:
- Sticky bar and Admin Bar #452
- Fixed: The off-canvas mobile menu was not working correctly #449 (Larzans)
Merged pull requests:
v1.3.0 (2015–09–03)
Full Changelog
Implemented enhancements:
- Main content columns dependent on existence of sidebar #325
Fixed bugs:
- Unable to change bg color of topbar from settings #377
- Main content columns dependent on existence of sidebar #325
- Post Image Aligment #110
Closed issues:
- Issues with WordPress Admin Panel #441
- Download (zip) not working #437
- Customising the Offcanvas Menu Walker #434
- foundation not a function (offcanvas) #393
- Top Bar and Tab Bar Sticky #328
Merged pull requests:
v1.2.0 (2015–08–27)
Full Changelog
Implemented enhancements:
- Off canvas or top-bar #210
- Hooks overview #140
Closed issues:
- How to understand the current version? #423
- Sub-menus not working properly #417
- Sub-menus not working properly #416
Merged pull requests:
v1.1.0 (2015–08–17)
Full Changelog
Closed issues:
- How to NOT install local bower & grunt? #405
- Error with “npm run watch” #399
- Semantic Versioning #395
- Megamenu in TopBar #353
- PHPCS gives different results than Travis CI when run locally with codesniffer ruleset #352
- top-bar #277
Merged pull requests:
v1.0.0 (2015–08–05)
Implemented enhancements:
- Sidebar Menu support? #200
- Breadcrumbs demo #135
- Source maps for webkit Devel Tools #75
Fixed bugs:
- Menu Icon not showing on mobile menu #300
- add_filter(‘get_image_tag’, ‘Foundationpress_image_editor’, 0, 4) is removing the caption of the image #276
Closed issues:
- Jquery never registered in enqueue-scripts.php and enqueued twice? #397
- OffCanvas Children Not working When Mobile Nav is set to right #394
- How to insert blog posts onto the home page? #391
- Pass an existing project to another dev #390
- What Modernizr component do we need? #388
- cannot run in wd #387
- NPM Error - Grunt Build #386
- Foundationpress_fixed_img_caption_shortcode is being ignored #383
- Backup Buddy Zip Process Fails Since Foundationpress Update #381
- bower_components Folder is missing #380
- Error with bower_components not found or unreadable #379
- Top-bar / off-canvas parent link #378
- Button Center #376
- Error while running npm run watch #375
- To create a blank page #374
- Themes #373
- Header Image not being displayed #372
- [Feature Request] Add GitHub Theme URI: olefredrik/Foundationpress to style.css #371
- Foundationpress crashes Netbeans 7.4 (or makes it stall) #370
- Off Canvas Close on Click #369
- Duplicating existing menus to create new ones #368
- NPM run watch is not working! #367
- how to change row width? #365
- Pagination not working #361
- Where to put custom functions? #360
- double title tags #359
- Two buttons in top bar #358
- Grunt Vs. Gulp #357
- Top Bar breakpoint #355
- Top Menu and WP 4.3-alpha #354
- How to pull off the transparent-to-fill top bar effect? #351
- “missing script: watch” When Installing #345
- WP admin Top bar showing over the top of the top menu bar #342
- Foundation not installed when “npm install” is run #341
- How to get top-bar container shadow to show up/take on top-level z-index? #340
- Blog Page double search form #333
- comments_template gone in Front Page #332
- Watch changes on js files #329
- Closing div row missing for search.php? #327
- Bad stylesheet attribute id #326
- Adding search to top-bar? #324
- Woocommerce Support #321
- Cannot see Foundationpress theme #320
- Top Bar Navigation not showing in 796px width or below. #318
- Missing translation #313
- Removing JS components #312
- Textdomain problem #311
- Fatal error: #308
- Loading sass.js tasks…ERROR #306
- Foundationpress + Shared Hosting? #305
- Top level menu items redirecting to index.php #304
- .f-topbar-fixed Margin Top of 45px #302
- wp admin bar not there and dropdown doesn’t work #301
- Getting pagination work for a category template #299
- comments.php error #297
- WooThemes Sensei Support #296
- Recommended Portfolio plugin that plays well with Foundationpress? #295
- How to use full-width rows properly? #293
- Issues importing custom scss file/ file to import not found or unreadable #292
- Breakpoints for the top-bar toggle #291
- unbound variable $medium-up on fresh install #290
- Uncaught TypeError: Cannot read property ‘topbar’ of undefined #289
- Editing sass with CodeKit problem #287
- Pagination #286
- Difficulties making Grunt work #284
- Top item in dropdown shown twice on medium #281
- How to add a Blog feed to a certain part of a page? #275
- Dropping global dependencies for bower & grunt #274
- How can we achieve this top-bar effect? #272
- Javascript ignored by grunt process #271
- How do you implement code into your WordPress pages? #267
- Posts preview in 3 columns #265
- Change breakpoint for topbar/tab-bar #260
- Get typeerror when I tried to use foundation tabs or accordions #259
- Interchange stopped working #258
- How to display images from custom fields in a block grid #257
- Display child pages in a block grid #255
- Button groups shows “ghost margin” on small screens #254
- Off canvas menu didn´t work on start page #253
- where to put my own scss? #252
- Multiple menus in mobile view #251
- Off canavs multi level #248
- Image Cleanup with Captions - Markup Output Issue #245
- Enqueue jQuery before </head> ? #243
- Content width on new install #242
- Help understanding enqueue-scripts.php #239
- Foundation Equalizer not working #237
- [question] where to place custom SCSS files? #235
- Change class on widget_search #232
- Failed at<EMAIL_ADDRESS>#231
- Is there a ‘best’ way to set up #230
- Calling Foundationpress_pagination in a custom query #229
- Foundationpress folder structure #228
- Bower error #226
- customize woo commerce cat and single prod pages #223
- How to customize woocommerce templates? #220
- Examples of Foundationpress sites #219
- Error: Cannot find module ‘node-sass’ #217
- Where is app.scss in Foundationpress #216
- Foundation press and plugins “revolution slider” #213
- Cannot install npm in Foundationpress dir #212
- Functions Conflict in Child theme #211
- Loading “sass.js” tasks…ERROR #209
- Error when run ‘npm install && bower install && grunt build’ instruction #208
- Recommended SASS customizations? #207
- Warning: call_user_func(); comment-template.php on line 1796 #205
- remove whitespace only on start page didn´t work on mobile devices #204
- Foundationpress_comments function not found? #202
- Sourcemap not working #199
- Changing border-radius of input border not working #197
- Stick footer to bottom when page is empty #196
- Strict Standards: Declaration of Foundationpress_comments::start_el() should be compatible with Walker_Comment::start_el() #194
- Adding Custom Attribute To Menu Item to open modal #190
- Can’t disable buttons component #188
- [Clearing gallery] Applying Foundation’s Fix#3410 “the image shift” #186
- comments.php loop error #181
- Don’t load jquery 2.x for IE 8 #178
- Foundationpress + Timber #177
- WP Breadcrumb #173
- foundation.css vs app.css #172
- Grunt copies all JS files #165
- errors installing npm & bower #164
- customizing header #163
- how to make my own javascript to work in front end #162
- Editing js files does not update app.js even with grunt in watch mode #158
- Anybody else getting hit with a bug for hide-for-small? #156
- Problem with sticky Class in wordpress #155
- Child theme #154
- having an issue with the off canvas menu in iOS #153
- ENOTFOUND Package not found when trying to install from bower #151
- Foundationpress_pagination generates broken markup #149
- Defer javascript #148
- [SOLVED] Conflict with “Easy Foundation Shortcode” plugin #147
- Equalizer #146
- Icon Bar #145
- _settings.php missing an asset when compiled #142
- Login Box #141
- Custom JS #136
- test2 #133
- Wordpress 4 #132
- Adding uncss option to gruntfile #131
- Adding function checks to make Foundationpress more Child Template friendly. #129
- Sass when you work online #128
- Too much styles default #127
- Child theme or not? #125
- Child Theme outputting duplicate CSS #124
- Joyride init problem #123
- app.min.js #122
- js/vendor? #121
- Child-Theme #120
- How to update to a new version of Foundationpress? #118
- Broken layout for IE9 #117
- Wordpress 4.0 compatible? #116
- Essential JS #115
- error on compile with libsass and foundation 5.4.3 #114
- What’s the better way to update? #111
- Accessibility Issue - aria-hidden attribute on Off-Canvas wrap. #108
- Off Canvas flashing with Meta Slider / Flex Slider #106
- npm WARN package.json<EMAIL_ADDRESS>No repository field. #105
- Gallery only showing 5 images #104
- number of columns #102
- Thumbnails in grid view #101
- Adding Livereload for SaSS ? #99
- It’s not clear from the docs where to put your own js #97
- Setting Top Bar colors ( topbar-link-bg-active ) is not working #96
- Cannot get Foundation equalizer working #94
- How to create a child theme? #92
- Body class #91
- Compiling everything except the SCSS files? #90
- Button background on hover is always dark blue #86
- Adding button at the end of right menu as list item #84
- Off-canvas Menu Issue #82
- How to compile SASS at end of app.css rather than beginning? #81
- Question: How would I add a menu description to the menu walker? #76
- When creating a child theme the stylesheets and icons are not loaded #74
- Where are the translation file? #73
- $tapbar-hamburger-icon-thickness #72
- footer as real footer #71
- Side bar on the left #69
- SVGs don’t show up in Safari #68
- 404.php template is missing row div #66
- Image referencing and paths #65
- Menu disappearing in a category page (archive too) #64
- App.scss Syntax error #62
- Flickering Fixed Background Image in Chrome #61
- Custom Starter Theme Creation like underscore site #60
- Mobile and tablet devices’ menu not working #58
- Invalid Markup: “Attribute pubdate not allowed on element time at this point.” #57
- Entire layout is inside .off-canvas-wrap? #56
- Making comments.php friendly to Jetpack comments #55
- Install on Multisite Not Working Right #54
- Installing Woocommerce plugin knocks out Foundation js #53
- Sticky-Footer #52
- Question With Forms #51
- $(document).foundation seemingly called too soon #50
- menu link not working #49
- menu not link #48
- 100% width divs? #47
- Off-Canvas not working #46
- Menu breaks when WooCommerce is installed #45
- Hide-for-small turning inline elements into blocks #44
- jQuery in NoConflict Mode #43
- Menu divider #42
- Top bar with default primary wp menu #41
- WooCommerce compatability #40
- Permission denied (publickey). #38
- Targeting list items in mobile off-canvas-toggle menu #36
- Adding custom theme scripts to app.js #33
- Add hooks to inject own code by using a childtheme or a plugin #31
- Documentation Foundationpress #30
- Use Compass #29
- top-bar sticky nav #28
- jQuery in Header Issue #27
- Foundationpress Top Bar Hidden by Wordpress Admin bar when logged in. #26
- foundation script #25
- Loading jQuery in footer - some plugins have issues #24
- Make strings translatable? #23
- Why loop register_sidebar()? #22
- Demo Data [mysql dump or wordpress export file] #21
- Permission Denied #20
- custom domain(s) #18
- Failed to load resource: the server responded with a status of 404 (Not Found) #17
- jQuery conflict? #16
- foundation folder full of component scss files inside the js folder #15
- No Search Results Does Not Load 404.php #14
- jquery issues #13
- Image caption bug #12
- bug with function img_unautop #11
- topbar-input-height variable missing #9
- Adminbar overlaps mobile menu when width < 600px #8
- Using CodeKit (mac) vs Grunt/Bower, etc… #7
- IE8 support #6
- jquery-ui-datepicker #4
Merged pull requests:
* This Change Log was automatically generated by github_changelog_generator


usage of python data analysis libraries
counts the number of (public) repos that use these python data analysis libraries.
currently querying github repos only.
improved graphs and plots over time will be posted once more data points are available.
started gathering weekly data snapshots as of 12/2/2012
built on python: github API, requests, flask, d3.js, heroku
Todo/ Work-in-Progress:
{% for issue in issues %}
{{ issue.title }}
: {{ issue.body[:100] }}...
{% else %}
Unbelievable. No issues pending!
{% endfor %}
(Issues from
github
).
Number of repos using <lib>
Followers of any repo using <lib>